Skip to content
Hisaab

Expense tracker + people ledger

Know where your money went, and who owes you.

Hisaab tracks your expenses and keeps a precise lend/borrow ledger with friends and groups. It is built on a double-entry ledger, so every balance adds up and can be traced.

Features

Everything for everyday money

From a coffee to a shared trip, track it once and let the ledger keep everyone honest.

How it works

A double-entry ledger, explained simply

The same idea accountants have used for centuries, applied to your pocket.

  1. 1

    Every transaction has two sides

    When Asha lends you money, it isn't just a number going up. Money moves from one place to another, so two entries are written together.

  2. 2

    Debits always equal credits

    Each transaction posts equal and opposite entries. If the totals don't match, the transaction is rejected, so balances can't silently drift.

  3. 3

    Balances are derived, not edited

    A person's balance is the sum of their entries. Nothing overwrites history, so every figure can be traced back to the entries behind it.

  4. 4

    Corrections add, they don't erase

    Fixing a mistake posts a reversing entry and a new one. You get the right answer and a clear audit trail.

Example: Asha lends you money (illustrative figures)
AccountDebitCredit
Your cash100·
You owe Asha·100
Total100100

Debits equal credits, so the transaction is balanced. Repaying Asha posts the opposite entries and brings what you owe back to zero.

App screens

A look at the app

Illustrative mockups with placeholder values. Real screenshots will replace them.

Tech stack

Built with proven tools

Backend

  • NestJS 11
  • Prisma
  • PostgreSQL
  • Double-entry ledger
  • Swagger / OpenAPI docs

Mobile

  • React Native 0.88 (bare)
  • TypeScript
  • React Navigation
  • Animated UI

Services

  • Firebase phone sign-in
  • Cloudinary receipt uploads

Contract

  • OpenAPI specification shared between backend and app

Architecture

How the pieces fit

A React Native client, a NestJS API described by an OpenAPI contract, and PostgreSQL behind Prisma.

Hisaab architecture diagramThe React Native app talks to a NestJS API over an OpenAPI-described REST contract. The API uses Prisma to store data in PostgreSQL, verifies Firebase phone sign-in, and handles receipt uploads with Cloudinary.Mobile appReact Native · TypeScriptNestJS APISwagger · OpenAPIPrismaORMPostgreSQLdouble-entry ledgerFirebasephone sign-inCloudinaryreceipt imagesOffline queuelocal syncRESTArrows show the main direction of requests.

Roadmap

Where things stand

Built

  • Expenses, people ledger, groups, budgets
  • Recurring bills & EMI reminders
  • Offline sync & receipt uploads
  • Corrections, duplicate detection, export, account deletion

Next

  • Real app screenshots on this site
  • Public walkthrough of the ledger design
  • Release notes

Exploring

  • Ideas are tracked in the GitHub repositories

Open source

Explore the code

Hisaab lives in separate repositories, tied together by an umbrella repo.