Evenly: Shared Expense Tracker

Mobile & Web App for Splitting Bills and Settling Up with Friends

TypeScriptReact NativeExpoSupabasePostgreSQLDeno (Edge Functions)GitHub ActionsNetlify
Project Overview

Built and launched Evenly, a free app for tracking shared expenses among roommates, friends, couples and travel groups. Add a bill, choose how to split it, and Evenly keeps a live tally of who owes whom, then works out the fewest payments to settle up. One TypeScript code base (Expo and React Native) runs as an Android app and as a website that installs on any phone's Home Screen, backed by a Supabase Postgres database with row level security so people only see the groups they belong to.

Key Features
  • Split equally, by exact amounts, percentages, shares, or item by item (tax and tip shared proportionally)
  • Debt simplification: the fewest payments needed to settle a group
  • Multi-currency expenses with live exchange rates
  • Settle up with UPI, PayPal or Venmo
  • Monthly spending by category, six-month chart and budgets
  • Push notifications and emails for new expenses, comments and payment reminders
  • Works offline, syncing changes when back online
  • Invite friends by link or QR code; sign in with email or Google
  • Light and dark themes; export to spreadsheet
Results
  • Launched publicly: live website plus an Android app, all running on free plans
  • 9 core screens and a full activity history, with ~45 auto-detected expense categories
  • Automated Android builds through GitHub Actions and Expo's build service
  • Unit tests for the split and settlement maths
Technical Challenges
  • Keeping each group's data private in a shared database
  • Settling a group with as few payments as possible
  • One app for Android, iPhone and web
  • Notifying people when something changes
Solutions Implemented
  • PostgreSQL row level security policies on every table, so users only read and write groups they belong to
  • Implemented a debt-simplification algorithm in the shared split-maths module, covered by automated tests
  • Built a single Expo / React Native code base in TypeScript, with web-specific modules where needed
  • Database triggers record activity, and a Supabase Edge Function sends web push, Expo push and email
Technology Stack
TypeScriptReact NativeExpoSupabasePostgreSQLDeno (Edge Functions)GitHub ActionsNetlify

Interested in Similar Projects?

Let's discuss how I can help bring your ideas to life with modern technologies and data-driven solutions.