Case study · Shared expenses & bill splitting · iPhone

AllSquare

A bill-splitting app with no daily limits and no ads, backed by a ledger that adds up to the cent.

AllSquare on iPhone: adding a dinner expense, a trip group showing 'You are owed $30.00', and settling up

The challenge

Splitting shared costs sounds simple until real life shows up: several people pay for one dinner, a trip mixes currencies, someone adds an expense on a plane, and a cent has to go somewhere when $100 is split three ways. Popular apps in this space limit how many expenses free users can add per day and show ads.

What we built

  • A native iPhone app in Swift and SwiftUI with every way to split: equally, exact amounts, percentages, shares, adjustments, item by item and multiple payers.
  • Money stored as whole minor units (cents) everywhere, never floating point, so every split adds up exactly and leftover cents rotate fairly between people.
  • Debt simplification that settles a group in the fewest payments without changing anyone's total, kept separately for each of 50+ currencies.
  • Offline entry with a sync outbox: expenses added without a connection sync on reconnect, with a field-by-field merge when two people edit the same expense.
  • A TypeScript backend (Fastify, PostgreSQL) with push notifications, recurring bills, receipts, comments, an activity feed and invite links.
  • English and Bengali, with Dark Mode, Dynamic Type and VoiceOver built in.

Technology

  • Swift 6
  • SwiftUI
  • SwiftData
  • TypeScript
  • Fastify
  • PostgreSQL
  • APNs

The result

A complete expense-sharing product, coming soon to the App Store, free with no daily limits and no ads.

Want something like this built?

We bring the same team and process to client projects. Tell us what you're building; the first consultation is free.