Made By BangMade By Bang
iOS + Android + WebReact NativeExpoTypeScriptSQLiteGoogle Sheets

Split Ledger – Easy Group Expense Splitting

Mobile-first app for tracking group expenses, capturing receipts, and settling debts effortlessly.

Group list screen with balance indicators
Group detail - Home with expense list
Group expense summary with charts
Member expense statistics
Settlement screen with optimized transfer suggestions
Group member list
App settings screen
Connect Google account
Google connection successful
Settings after Google connection

Group list screen with balance indicators

Challenge

Managing shared expenses during group trips or events is always a painful problem:

  • Entering expenses on Google Sheets via mobile is slow and error-prone
  • Receipts and photos are scattered, hard to verify during disputes
  • No signal/roaming causes sync interruptions
  • End-of-trip settlement is time-consuming and often leads to conflicts

Solution

Built a mobile-first app with offline-first architecture, enabling expense logging in under 10 seconds even without internet. Data is stored locally first, then one-way synced to Google Sheet/Drive when connected. The min-transfers algorithm automatically calculates the optimal payment flow to minimize transactions during settlement.

Key Features

  • Quick Expense Entry (under 10 seconds): Optimized VND numpad, one-tap payer and beneficiary selection
  • Receipt Capture: Attach photos to expenses, auto-upload to Google Drive
  • Smart Settlement: Min-transfers algorithm finds the fewest transactions to balance debts
  • Offline-first: Works seamlessly without internet, auto-syncs when connected
  • Google Sheet/Drive Sync: Data pushed to Sheets, receipts to Drive folder
  • Invite by Code: Generate 6-character code + QR code for friends to join
  • Sponsor Support: Track external sponsorship money, excluded from settlement
  • Multi-language: Auto-switches between Vietnamese/English based on device locale
  • Group Lifecycle: Auto-archive expired groups, settlement reminders

Tech Stack

  • Mobile: React Native 0.81+ · Expo 54 · TypeScript (strict) · NativeWind v4
  • State: Zustand · react-hook-form + Zod validation
  • Database: expo-sqlite · DrizzleORM (type-safe migrations)
  • Navigation: expo-router (file-based routing)
  • Sync: Google Sheets API · Google Drive API (Direct REST, no SDK)
  • Code Quality: Biome (lint/format) · TypeScript strict mode
smartphone

Get the App

Experience native performance.

qr_code_2Scan to Download
Or view in browser

Project Details

RoleSolo Developer
Year2025–2026