Expenso
A group expense tracker for friends, roommates, and travel groups. Type "Dinner 1200 with Ash excluding Rishi" and the Magic Bar turns it into a structured ledger entry. Functional MVP with CI — GitHub Actions and CodeQL.
The Problem
Shared expenses die in group chats. Someone pays, someone forgets, and settling up becomes an awkward archaeology project. Expense apps exist, but the data entry is tedious enough that groups stop using them.
Expenso attacks the entry friction directly: if logging an expense is as fast as typing a sentence, the ledger actually stays current.
Architecture
Group finances are modeled as a Cycle — a shared ledger that moves through tracking, settlement, and archiving phases. Everything runs on Supabase: Postgres for the ledger, Auth for identity, Realtime for live sync across every member's device, and Edge Functions for server-side logic.
The Magic Bar is the standout: an AI NLP input powered by Groq running Llama 4 Scout. It parses free-form text like "Dinner 1200 with Ash excluding Rishi" into structured ledger entries — amounts, participants, and exclusions — with no forms in the way.
Key Features
- Magic Bar — Natural language expense entry. One sentence in, one structured ledger entry out, via Groq and Llama 4 Scout.
- Cycle Model — Group finances move through explicit tracking, settlement, and archiving phases, so every cycle has a clean beginning and end.
- UPI Deep-Linking — Settle debts by jumping straight into GPay, PhonePe, or Paytm with the amount pre-filled.
- Real-Time Sync — Every expense appears on every member's device the moment it's logged, via Supabase Realtime.
- Settlement Engine — Computes who owes whom when the cycle closes.
- CI Discipline — GitHub Actions and CodeQL run on the codebase — a functional MVP with production habits.
Tech Stack
Flutter/Dart · Material 3 · Supabase (Postgres, Auth, Realtime, Edge Functions) · Groq API · Razorpay