Skip to main content
Back to Projects
In ProgressFeaturedAI Apps

Money Follows — AI Expense Tracker (Arabic & English)

A bilingual (AR/EN, RTL) offline-first expense tracker for Android, built with React Native and Expo: add payments by keypad, text, voice, receipt photo or bank SMS, ask your data questions, and get budgets, reports and forecasts, with AI that never does the math.

Money Follows AI expense tracker app screens

Overview

Project Overview

Money Follows is a personal finance app for Android built with React Native and Expo, designed for Arabic and English from the first line, with full right-to-left (RTL) support. It answers one question at a glance, "how much can I still spend today?", and makes logging a payment take seconds: tap it on a keypad, type it in plain words, say it out loud, photograph the receipt, or accept a payment the app found in your bank text messages.

All data lives on the phone in SQLite, so the app works fully offline. AI is used where it saves effort, never where it could get a number wrong.

Key Features

  • Home that shows what you can spend today, this week and this pay-month, with an on-pace check, a spending forecast and recent payments by day
  • Five ways to add a payment: number keypad, AI quick add from a typed phrase ("lunch 150 and taxi 60"), voice input in Arabic or English with live waves, receipt photo reading, and payments found in bank SMS
  • Bank SMS capture through a custom native Kotlin module: messages are parsed on the phone only, from senders you choose, and nothing is saved until you tap Add
  • "Ask your data" chat (also by voice): the AI picks lookups from a fixed menu, the app runs them as SQL, and the answer comes with a chart drawn from the same data
  • Budgets per category plus a salary plan that sets the monthly budget and a weekly allowance; months can start on payday
  • Reports by week, month, year or custom range: category ring, daily and monthly bars, top merchants, needs vs wants, spending vs pace, PDF export and an optional AI summary
  • Calendar of daily spending, transaction search and filters, split payments, projects, savings goals and recurring bills and income
  • Subscriptions detected automatically from payment history, and merchant rules the app learns from your corrections
  • Daily and bill reminders, receipt photos, CSV import, JSON backup and restore, app lock with fingerprint or face, dark mode and optional Hijri dates

AI Done Safely

The language model never does math. It only turns text into structured data, picks lookups, or puts numbers the app already computed into words. Every AI answer is validated with Zod; amounts are converted to integer minor units in code; an amount the model got 10, 100 or 1000 times wrong is put back to the number you typed and flagged; and every AI entry goes through a confirm screen before it is saved. If you name a category that does not exist ("gym 300 sports"), the app offers to create it.

The app runs on free OpenRouter models: it discovers the current models daily, ranks them by measured quality, skips models that fail or are rate limited, caps how long a request may take, and recognizes the free daily limit so no request is wasted. An evaluation harness measures quick add and Ask AI against the real models.

Privacy and Quality

Only the minimum is ever sent to the model: no notes, card or account numbers are masked, and bank messages never leave the phone. The project is covered by more than 1,800 automated tests (Jest and React Native Testing Library), including tests that drive the real router, and key features were checked by deliberately breaking them to confirm a test catches the change.

Built end to end: product design, mobile UI with motion and RTL, local database and migrations, AI integration, a native Android module, and the test suite.

Gallery

13 screenshots

Technologies

React NativeExpo SDK 58Expo RouterTypeScriptSQLite (expo-sqlite)ZodOpenRouter (LLMs)Vision AIKotlin (Expo native module)React Native SVGAnimated APIExpo NotificationsSpeech RecognitionExpo Image PickerExpo Print (PDF)Local Authenticationi18n / RTLJestReact Native Testing Library

Next step

Got a project in mind?

I'm available for freelance and contract work. Let's discuss what you're building.