Inspiration

The idea for SplitUp came from a familiar moment: dinner is over, the receipt lands on the table, and nobody wants to be the person chasing friends for money. Apps like Splitwise showed that people need a way to track shared expenses. But when we talked to our friends, we kept hearing that the experience could be so much better. They wanted an interface they enjoyed using, more control over individual items, and a smoother path from “here’s the bill” to “we’re settled.”

That gap became a passion project for us. We are building the expense-sharing app we wish our own group had: one that feels polished, handles the messy details, and makes splitting a bill feel like a normal part of being together rather than an awkward follow-up.

What SplitUp does today

SplitUp takes a shared receipt from scan to clear balances. Users can scan a receipt, correct the recognized items, choose who paid, and assign each item to the people who shared it. They can also split equally or use custom amounts. Before saving, they can review the result by person or by item. Group balances and activity keep the explanation behind each number visible. When friends pay each other outside the app, they can record the settlement; SplitUp does not move money.

The workflow matters as much as the calculation. We want someone to understand their share without reconstructing a receipt in a chat, and we want the person who paid to finish the job without becoming the group’s accountant.

How we built it

The mobile app uses Flutter and Dart. On-device text recognition turns receipts into editable items. Drift handles local data, Riverpod manages app state, and Supabase provides the backend. RevenueCat manages subscription purchases and entitlements. Core expense splitting is free; Pro raises limits on active groups, group size, and receipt scans for groups that use SplitUp more heavily.

Challenges and what we learned

A scan is only helpful if people can trust the result. Receipt recognition can make mistakes, so we made the extracted names and amounts editable and added a review step before a split is saved. We also had to make item-level choices feel simple enough for a real table of friends, rather than turning every dinner into data entry. Handling subscription limits across local and backend state taught us to explain a refused offline change where it happens.

Where we want to take it

Receipt scanning is already in the app. An AI assistant is a future goal, not a feature we are claiming to have shipped. We want it to help people work through the tedious parts of a shared expense while keeping the final choices transparent and in their hands. We also want to keep refining the design and workflow with feedback from our friends and other users.

Our ambition is bigger than another ledger of who owes whom. We want shared expenses to be easier to understand, easier to settle, and less uncomfortable to talk about—so the bill stops getting in the way of the people around the table.

Built With

  • dart
  • drift
  • flutter
  • revenuecat
  • riverpod
  • supabase
Share this project:

Updates

Submission history