Fatoorah
A cross-platform mobile app for receipts, budgets, and reminders, with a swappable bank-data layer for Saudi Open Banking.
Overview
Fatoorah is a personal finance app in the style of Rocket Money. It tracks receipts and spending, shows budgets and trends, and reminds you about warranties, return deadlines, subscriptions, and bills. It runs on phones and in the browser.
What I did
I designed and built the app: four main screens, light and dark themes, and a bank-connection flow. A small backend keeps the banking provider's secret key off the phone.
Architecture
Expo + Expo Router (React Native) with a provider interface for bank data. A mock provider supplies demo data for Expo Go and web, and a Lean Technologies provider talks to a Node backend that holds API secrets for real Open Banking sandbox linking.
System flow
- Screens
- useBank() context
- Provider interface
- Node backend
- Lean Open Banking
Technical decisions
- Swappable data providerScreens never know whether data is mock or real. One config flag switches providers.
- Platform-split native SDKThe Lean LinkSDK needs a native WebView, so it is split into .native/.web files and bundled only on real devices. Mock mode still works in Expo Go and the browser.
- Secrets stay server-sideThe app calls a backend for tokens instead of shipping provider keys in the client bundle.
Technologies
React Native · Expo · Expo Router · JavaScript · Node.js · Lean Open Banking API · EAS Build