SplitMateSplitting equally does not always mean splitting fairly.
It started at a barbecue with friends. Not everyone consumed the same items: I did not drink beer, for example.
Try the idea
Should someone who didn't drink pay for the beer?
Change the participants and watch the bill adjust. Fictional example, no account and no saved data.
The problem
An equal split would make some people pay for things they had not consumed. Doing it manually meant identifying participants, payments and proportions for each expense.
The product decision
The hypothesis was to define who paid, who participated and each person’s weight for every expense. The system then calculates balances, records payments and simplifies group debts.
- Expense
- Who paid
- Participants + weights
- Balances
- Settlements
Validation and use
Used by friends and acquaintances in Maceió, inland Alagoas and the United States.
How it evolved
It started as an individual tool. Use showed that everyone needed to follow the same account: shared groups, invitations, participants without accounts, avatars and collaboration followed.
Engineering decisions
Balancing to the exact cent
Calculations in cents and deterministic remainder allocation address the main challenge: weighted splits must add up to the exact expense amount.
Sharing and access
PostgreSQL, RLS and authentication support shared groups and access to data.
Web and Android
Next.js, React and TypeScript power the web app, with Capacitor for Android.
This project’s technologies
- Next.js
- React
- TypeScript
- PostgreSQL
- Supabase
- Capacitor


