CashFlow
A production-ready React Native fintech app with 20+ features including AI receipt OCR, budget analytics, bill reminders, subscription tracking, and an offline-first data layer.
The Problem
Personal finance apps either lock essential features behind subscriptions or require constant internet connectivity. I wanted a comprehensive money management tool that works offline-first — capturing expenses on the subway, syncing when back online — with AI-powered receipt scanning to eliminate manual data entry.
The Solution
I built CashFlow as a React Native app with Expo, featuring 20+ financial management capabilities.
- AI receipt OCR — Snap a photo of any receipt and OpenAI extracts the merchant, amount, date, and category automatically.
- Budget analytics — Visual breakdowns of spending by category, time period, and trend analysis.
- Bill reminders and subscription tracking — Recurring expense monitoring with notification alerts.
- Savings gamification — Goal-based savings with progress tracking and milestone rewards.
- Offline-first data layer — SQLite for local persistence with Zustand for state management. Full CRUD operations work without internet.
What Went Wrong
The offline-online sync was the hardest problem. When a user edits an expense offline on their phone and also edits it on another device, the sync produces a conflict. The initial implementation used "last write wins," which silently dropped edits.
The fix: I implemented a conflict resolution strategy with vector clocks on each record. During sync, conflicting records are detected and merged field-by-field (later timestamp wins per field, not per record). A batch sync queue accumulates offline changes and replays them in order during reconnection, ensuring zero data loss across devices.
Results
- 20+ features in a single cohesive app
- Offline-first with zero data loss across devices
- CRUD for 12+ entity types with conflict resolution
- Batch sync queues for seamless cross-device usage
Interested in working together?
Let's Talk