Personal expense tracker
Ledger
Track spending, income and bills in seconds. Built for India, on Android.
- Role
- Solo: design, development and Google Play release
- Status
- On Google Play
- Stack
- Flutter, Dart, BLoC (Cubit), Firebase, Kotlin, Material 3

Results
- to log an expense
- 5s
- automated tests
- 47
- ads, analytics or trackers
- 0
01Problem
People lose track of where their money goes because logging an expense takes too long, and their cash, bank, card and wallet balances live in different places. Many finance apps also come with ads and tracking.
02Architecture
A Flutter app using Cubit for state, on Firebase Auth, Realtime Database, App Check and Hosting. It is offline-first and syncs automatically. Kotlin handles the home-screen widget, the optional detection of payments from UPI apps' notifications, and Android Keystore encryption for the on-device payment queue.
03Key decision
Updating balances with atomic database operations, so they stay correct across devices and offline. The same care means a recurring entry can never post twice, even when two devices open the app at once.
04Result
Built and shipped alone, from design to release on the Google Play Store. It has no ads, analytics or tracking, database security rules on every field, 47 automated tests, and passed a security review before launch.
Screens


