Bill Splitter: A Privacy-First Approach to Shared Expenses
You know how annoying it is to split bills with friends or roommates? There’s tons of apps for this, but most of them want you to create account, give your email, and they keep all your data forever. Some even want money for subscription. Bill Splitter is different - it’s free, you stay anonymous, and everything gets deleted automatically.
The Problem with Existing Solutions
Most bill splitting apps make you sign up with email and password and all that. But honestly, for just splitting dinner bill or holiday costs with friends, this is too much. I don’t want another account to remember. I just want to know who owes who and be done with it.
A Simpler Alternative
Bill Splitter works simple: you create a split, share the link, everyone adds what they paid. That’s it. No registration, no personal data, nothing saved for long time.
How It Works
There’s four steps:
-
Create a Split: Go to the site and click to make new split.
-
Share the Link: You get unique URL that you can send to your friends on WhatsApp or whatever you use.
- Add Expenses: Everyone types their name and adds what they paid for, with description and amount.
- View the Settlement: When everyone marks they’re done, the app calculates who needs to pay who and how much.
Key Features
No Account Required: Everything is anonymous. You just pick any name you want for that split.
Automatic Expiration: All data deletes after 24 hours. Most people settle their bills same day anyway, and this way your data doesn’t stick around.
Multi-Language Support: Works in English and Dutch, switches automatically based on your browser.
Mobile-Friendly Design: Works on phones, which is nice because you can add expense right after paying for something.
Smart Settlement Calculation: Instead of showing complicated web of who owes who, the app figures out minimum number of payments needed. Much cleaner.
Under the Hood
If you’re interested in technical stuff, Bill Splitter runs on serverless architecture.
Architecture Overview
Frontend and backend are separated:
-
Frontend: React app that handles the interface. Talks to backend through REST API and remembers in browser storage which participant you are in a split.
-
Backend: Runs on Cloudflare Workers, which is serverless platform that executes code close to where users are. This means it’s pretty fast no matter where you connect from.
-
Database: Uses Cloudflare D1, which is basically distributed SQLite. Database is simple: just tables for splits, participants, and expenses. Old data gets cleaned up automatically.
Privacy by Design
Privacy was main concern when building this:
- No authentication = no passwords that can leak
- No emails or personal info collected at all
- Everything expires automatically so data doesn’t stay forever
- No cookies or tracking
- Client-side logging removes anything that could identify people
The Settlement Algorithm
When everyone finished adding expenses, app calculates settlements with greedy algorithm that minimizes transactions. Instead of everyone paying everyone, it finds optimal pairings between people who owe and people who are owed.
Example: Alice paid 60 euros, Bob paid 30 euros, Carol paid 0 for total of 90 euros. Per person share is 30 euros. So Carol owes 30, Bob is even, Alice should get 30. Settlement is simple: Carol pays Alice 30 euros. One transaction instead of bunch of small ones.
Use Cases
Works well for:
- Group Dinners: Figure out who owes what after meal when different people paid for different things
- Shared Accommodation: Split costs for holiday rentals, groceries, activities when traveling with friends
- Household Expenses: Roommates tracking shared purchases and settling regularly
- Event Planning: Splitting costs for parties, group gifts, team events
- One-Time Situations: Basically any time when making account in app feels like overkill
Conclusion
Not every problem needs complex solution. Bill Splitter just focuses on calculating who owes who and doesn’t try to do more than that. No bloated features, no friction, it just works.
Source code is available if you want to check how it works or run your own version. The app is free and stays free.
I think sometimes best software is one that does one thing well and doesn’t get in your way.
Bill Splitter is available at https://billsplitter.nl. Project is open source and welcomes contributions.
Comments
Join the discussion on Bluesky
Loading comments...