v1.0.0 — Offline-first personal finance manager for Android & iOS
Built with Expo 54, React Native 0.81.5, TypeScript, SQLite, and Supabase. Zero TypeScript errors, zero ESLint warnings.
- Dashboard — Animated hero card, donut chart for category breakdown, savings ring, budget progress, quick actions, recent transactions
- Transactions — Add/edit income, expense & transfer with categories, accounts, payment methods, tags, notes, recurring support
- Split Expenses — Google Pay-style sharing. Track balances friend-by-friend with swipeable By Split / By Friend views, and settle debts with one tap.
- Budgets — Monthly per-category budgets with progress bars and over-budget alerts
- Goals — Savings goals with target amounts, deadlines, and fund tracking
- Notes — Colour-coded rich-text notes for financial reminders, goals, and ideas
- Reports — Spending trend charts, category distribution, net worth tracker (assets vs liabilities)
- Net Worth — Asset and liability management with history snapshots
- Notifications — In-app budget-exceeded and goal-completion alerts
- SMS Import — Auto-import bank/UPI transactions from SMS (Android native builds only)
- Accounts — Manage bank, UPI, wallet, credit card, and investment accounts with a premium auto-scrolling glassmorphic carousel UI.
- Cloud Sync — Bidirectional sync with Supabase (offline-first with sync queue)
- Email Reports — Monthly summary email via Supabase Edge Function + Resend
- Dark/Light Theme — Explicit or system-aware theming
- Biometric Lock — Fingerprint/face unlock on app resume
- Data Export — CSV transactions, PDF transactions, full JSON backup
- Data Import — Restore from JSON backup
- Android Widgets — Home screen widgets: Expense Summary, Budget Health, Quick Add
- Analytics — Firebase Analytics for screen views, user events, and engagement tracking
- Crashlytics — Firebase Crashlytics for crash reporting and JS error tracking
| Layer | Technology |
|---|---|
| Framework | Expo ~54.0.0 + React Native 0.81.5 |
| Language | TypeScript (strict, 0 errors) |
| Routing | expo-router ~6.0.23 (file-based, typed routes) |
| Local DB | expo-sqlite ~16.0.10 (source of truth) |
| Remote DB | Supabase (PostgreSQL + Auth + Edge Functions) |
| State | Zustand ^4.4.0 + @tanstack/react-query ^5.28.0 |
| Animations | react-native-reanimated ~4.1.1, expo-linear-gradient |
| Charts | @shopify/react-native-skia ^2.2.12, react-native-svg |
| Lists | @shopify/flash-list 2.0.2 |
| Widgets | react-native-android-widget ^0.20.1 |
| SMS parsing | react-native-get-sms-android ^2.1.0 |
| Analytics | @react-native-firebase/analytics ^21.14.0 |
| Linting | ESLint ^9.0.0 + eslint-config-expo |
| Formatting | Prettier (pre-commit via husky + lint-staged) |
- Create
.env:
EXPO_PUBLIC_SUPABASE_URL=your-project-url
EXPO_PUBLIC_SUPABASE_ANON_KEY=your-anon-key- Install and start:
yarn install
yarn start- For SMS import or Android widgets, use a native build:
yarn android # expo run:androidApply Supabase schema before sync will work:
# Paste into Supabase SQL editor:
supabase/schema.sqlDeploy email edge function:
npx supabase login
npx supabase link --project-ref SECRETES
npx supabase secrets set RESEND_API_KEY=your_resend_key RESEND_FROM_EMAIL=no-reply@yourdomain.com RESEND_FROM_NAME="Hisab Kitab"
npx supabase functions deploy send-email
# Add secrets in Supabase dashboard:
# RESEND_API_KEY
# RESEND_FROM_EMAIL
# Optional: RESEND_FROM_NAMEEnable email/password auth in Supabase dashboard.
Without backend setup the app runs in full local-only mode.
yarn start # Start Expo dev server
yarn android # Native Android build & run
yarn typecheck # tsc --noEmit (must stay at 0 errors)
yarn lint # ESLint --max-warnings 0 (must stay at 0)
yarn format # Prettier
yarn doctor # Expo doctor
yarn test # Alias for typecheck| Document | Purpose |
|---|---|
| docs/onboarding.md | Start here — Setup → first PR in 2 hours |
| CONTRIBUTING.md | Contribution guidelines, branch strategy, PR process |
| ARCHITECTURE.md | Technical architecture — data layer, sync, state |
| AI_CONTEXT.md | AI agent reference (full codebase context) |
| AGENT_SOP.md | Code patterns, conventions, hard rules |
| PRODUCT_FEATURES.md | Detailed product feature documentation |
| SUPABASE_SETUP.md | Backend setup guide |
| DEPLOYMENT.md | EAS build & deployment guide |
| CHANGELOG.md | Release history |
| SECURITY.md | Security policy & vulnerability reporting |
| docs/adr/ | Architecture Decision Records |
| docs/runbooks/ | Operational runbooks (sync, releases) |