← All departuresFlt 06 / [ 2026 ]
Split & Settle
Personal project · Bill splitting for friends in India, settled by UPI
- Role
- Solo — product, design and engineering
- Year
- 2026
- Type
- Personal project
- Status
- Live
01 / 09 · Split & Settle: split the bill, settle in one UPI tap
Add what everyone paid; Split & Settle works out who owes whom to the paisa and turns it into UPI payments friends make in a tap — a QR on a laptop. Friends join with a WhatsApp link, no sign-up, and every phone updates live. It also imports a group straight from a Splitwise export.
(01)Problem
Splitting a Goa trip means a spreadsheet, a calculator and twelve 'who paid for the cab?' messages. Splitwise needs everyone to sign up, rounds to the rupee, and stops at 'you owe ₹4,655' — the actual payment still happens somewhere else.
(02)Approach
- 01Money in integer paise with largest-remainder rounding, so every split adds up exactly; settle-up suggestions in at most n−1 payments, stable so recording one doesn't reshuffle the rest.
- 02Guest sign-in with personal, single-use invite links — after debating the plan with a second AI reviewer, who caught that a shared link lets anyone claim a friend's name.
- 03Trust built into the database: Postgres row-level security, server functions for joining and importing, a trigger that rejects shares that don't add up, and an audit log of every change.
- 04Splitwise import from the official spreadsheet export rather than an API login — its terms require a commercial licence — rebuilt row by row and checked against Splitwise's own totals.
(03)What I built
- Expo (React Native) app shipped first as an installable web app on Vercel, ready for the App Store later; Supabase with realtime sync and guest auth.
- Equal, exact, shares and percentage splits with live validation; edit, delete and restore with author/admin permissions; activity feed.
- Settle-up with UPI intent links (GPay, PhonePe, Paytm), a scannable QR on desktop, copy-UPI-ID fallback, and payment records anyone involved can undo.
- Personal and group invite links with QR and WhatsApp share, admin link reset and unlinking, plus an on-device demo group for visitors.
(04)Results
- rounding drift — splits checked across 2,300 randomised cases
- ₹0.00
- live access-rule tests with four guest users against the real database
- 12
- browser tests, incl. two friends syncing live and a Splitwise import
- 65
- screen sizes audited for overflow and overlaps
- 17
(05)Stack
- Expo SDK 57
- React Native Web
- TypeScript
- Supabase (Postgres, RLS, Realtime, anonymous auth)
- Reanimated
- Vitest
- Playwright
- Vercel
