Skip to content
FlutterFirebaseExpense TrackingPersonal FinanceMobile AppOffline-FirstGroup ExpensesPKR

Expenses Meet

Client: Muhammad Tahir
Visit Live Product
Expenses Meet
Offline-First Architecture
Works without internet, syncs when online
Multi-User Support
Split expenses across group members
Smart Account Linking |
Offline transactions auto-link on login
Loan Tracking
Track borrowed & lent amounts

Technologies & Architecture Stack

FlutterDartFirebase

Overview

Expenses Meet is a cross-platform personal finance application built with Flutter and Firebase, designed specifically for users who need reliable expense tracking regardless of connectivity. The app addresses a critical gap in the Pakistani market: most expense trackers fail when offline or require constant login, causing users to lose transaction data. Expenses Meet solves this with an offline-first architecture that captures every transaction locally, then intelligently syncs and links entries to user accounts once connectivity is restored.

Beyond individual tracking, the app introduces collaborative features for shared expenses — allowing groups to split bills, track contributions, and settle balances — alongside a dedicated loan module for managing borrowed and lent amounts with reminders and repayment tracking.

Target Audience: Pakistani users managing personal finances, shared household expenses, group outings, and peer-to-peer loans.

The Challenge

Users in emerging markets face three persistent problems with existing expense tracking apps:

  1. Connectivity Dependency: Most apps require constant internet access or active login sessions. When users go offline or get logged out, they either lose transaction data or stop tracking expenses altogether, breaking the habit.
  2. Lack of Collaborative Tools: Households, roommates, and friend groups manually track shared expenses in spreadsheets or chat threads, leading to confusion about who owes what.
  3. No Loan Management: Personal loans between friends and family are common but poorly tracked, resulting in forgotten debts, awkward reminders, and strained relationships.

The technical challenge was building a system that maintains data integrity across offline/online transitions, ensures seamless account linking without data duplication, and provides real-time sync for group expenses when multiple members update shared balances simultaneously.

Solution & Architecture

Offline-First Design with Smart Linking

  • All transactions are saved locally first, using device-specific identifiers
  • When a user logs in, a reconciliation process matches offline transactions to the authenticated account using timestamp + device fingerprint
  • Conflict resolution favors user data, with duplicate detection to prevent double-entry

Group Expense Engine

  • Shared "rooms" where multiple users contribute expenses
  • Real-time Firestore listeners update balances as members add transactions
  • Automatic split calculation with configurable ratios (equal, percentage, custom)
  • Settlement suggestions show who owes whom the minimum number of transfers

Loan Tracker Module

  • Separate ledger for borrowed/lent amounts with counterparty names
  • Optional reminder system for due dates
  • Partial repayment tracking with history log
  • Visual indicators for overdue loans

PKR-First Localization

  • Native currency formatting for Pakistani Rupees
  • Urdu language support (future roadmap)
  • Local date/time conventions
  • Firebase Authentication with email/password and Google Sign-In
  • Row-level security rules in Firestore ensure users only access their own data and shared groups they belong to
  • Local SQLite database encrypted using SQLCipher

Results & Outcomes

Zero Data Loss:
Users can track expenses in offline mode (commute, no signal areas) without worry; all entries sync when back online
Effortless Group Management:
Groups settle shared expenses 60% faster compared to manual spreadsheet tracking (internal testing with 15 users over 30 days)
Loan Clarity:
Eliminates "who owes what" confusion with a dedicated ledger and repayment tracking
Offline-to-Online Reconciliation:
Successfully links offline transactions to user accounts with 99.8% accuracy (tested across 500+ sync events)
Real-Time Sync Performance:
Group expense updates propagate to all members within 1-2 seconds on stable connections
Cross-Platform Consistency:
Single codebase serves both iOS and Android with native performance
Outcome
Demonstrates advanced Flutter state management (Provider/Riverpod patterns)
Outcome
Showcases Firebase real-time database architecture with complex security rules
Outcome
Highlights offline-first engineering — a sought-after skill for fintech and productivity apps

Key Takeaway

  1. Offline-first is non-negotiable for finance apps in markets with inconsistent connectivity. The "save local, sync later" pattern became the app's most praised feature during beta testing.
  2. Smart reconciliation beats forced login. By allowing offline usage and linking transactions post-login, user retention improved because people didn't abandon the app when logged out.
  3. Collaborative finance needs real-time sync. Firestore's real-time listeners made group expense tracking feel instant, which built trust that balances were always accurate.
  4. Flutter + Firebase is ideal for rapid MVP iteration. The stack enabled solo development with production-grade auth, database, and real-time features out of the box.
  5. Loan tracking fills a genuine gap. The loan module saw unexpectedly high engagement, confirming that informal peer-to-peer lending needs better digital tools.

Have a similar system to build or scale?

Let's discuss your engineering goals, architecture, and timeline.