Ledgerly: splitting rent without the spreadsheet
Expense splitting for flatmates with real-time balances and UPI settle-up links.
- Role
- Solo, design to deploy
- Timeline
- 6 weeks, 2025
- Stack
- Next.js, tRPC, Postgres
- Users
- 120 households
The problem
My flat tracked shared costs in a Google Sheet. Nobody updated it, and every month ended with an awkward conversation about who owed what.
Constraints
- Must work on cheap Android phones over slow data.
- No app install. Flatmates would not download another app.
- Zero hosting budget beyond free tiers.
Architecture
- Next.js UI
- tRPC API
- Postgres (Neon)
- UPI deep link
Key decisions
tRPC over REST. One developer, one codebase. End-to-end types removed a whole class of bugs and I didn't need a public API.
Store balances as a ledger, not totals. Every expense is an immutable row, and balances are computed. This made "undo" and history trivial.
Results
120households in 3 months
0.9sload on 3G
₹0monthly hosting
What I'd do differently
Add offline support from day one. Most bills get logged at the shop counter, where the signal is worst.