Live: https://getdabba.vercel.app
Architecture Β· Deploy guide Β· Contributing Β· MIT licensed Β· βΉ0/month infra
A minimal Splitwise-style app, built only for tracking shared tiffin (food) expenses. Mobile-first PWA β everyone in the group installs it from a link, logs in with phone number + 6-digit PIN (no SMS, no cost), and shares one live ledger.
- Add entry β date, who paid the vendor, then two sections: Individual (pick people from a dropdown, set their own tiffin/roti counts, Β½ steps allowed) and Shared (e.g. 2 tiffins shared by 3 people β cost splits equally among whoever you tick, exact to the paisa). A live amount preview shows each person's payable before you save. "Same as last time" for one-tap repeat days. Multiple entries per day allowed (lunch + dinner).
- Prices set once β tiffin & roti rates live in Settings. Each entry snapshots the rate at save time, so editing prices later never rewrites old records.
- Balances β net per-person balance (paid β ate Β± settlements), plus "who pays whom" simplification like Splitwise.
- Record payments β when someone pays you back (partial is fine), log it and balances update.
- Audit report β quick ranges (last 7 days / this month / last month / all time) or a custom date range; per-person breakdown (days, tiffins, rotis, ate/paid/net), copy as text for WhatsApp.
- History β grouped by month with monthly totals, per-person amount chips on every entry, tap to edit. Deleting never erases: the entry stays as a visible "deleted by X" tombstone (restorable), excluded from all totals.
- Full audit trail β every entry shows who paid, who added it, and who last edited it; every payment shows who recorded it. The server enforces these stamps, so they can't be faked even by calling the API directly.
- Per-person ledger β tap any name on the Balances tab to see line by line how their balance adds up (ate / paid vendor / paid back / received).
- Extras β one-off βΉ amounts per person (sweet, papad, cold drink) on top of tiffin/roti counts.
- Members β anyone can leave a group or remove someone who left the mess; their old records keep their name. Invite codes can be regenerated if leaked.
- Live sync β phones with the app open see each other's changes instantly (Supabase Realtime).
- Demo mode β "Try demo" on the first screen runs the entire app on sample data in the browser, no account or backend needed.
No install, no setup. Just open the link on your phone:
π getdabba.vercel.app
- Sign up with your phone number + a 6-digit PIN.
- Create a group β set tiffin & roti prices β share the invite code with your flatmates.
- Browser menu β Add to Home Screen β installs like a native app, no Play Store needed.
Try it first without signing up: tap "Try the demo" on the welcome screen.
Only needed if you want to host a completely separate instance with your own database. Regular users just open the link above β no setup required.
- Create a free Supabase project β SQL Editor β run
supabase/schema.sql. Under Auth β Email, disable Confirm email. - Copy
.env.exampleβ.envand paste the Supabase Project URL + anon public key. npm install && npm run devfor local dev. Deploy free: push to GitHub β Vercel β add the twoVITE_β¦env vars β done.
Forgot PIN? Supabase Dashboard β Auth β Users β find
p<phone>@tiffin-tracker.appβ Update user β set new 6-digit password.
npm testβ money-math unit tests; run after any calculation changes.- Trusted-group model: any member can add/edit entries (like Splitwise), but every action is server-stamped with the doer's name and can't be faked.