A React Native app for tracking what you hold and splitting costs with friends, built for the Pakistani market, with its own API and operations console behind it.

Where it started
Shared expenses are social before they are financial: the hard part is agreeing what was spent and who owes what, without it becoming an argument. The app also had to work on mid-range Android handsets with intermittent connectivity, where a spinner waiting on a network call is not an acceptable answer.
Expense tracking
Spending is captured against categories as it happens, with recent activity on the home screen rather than buried in a report.
Budgets
Per-category budgets with progress against each, so an overspend is visible before the month ends.
Shared costs
Costs split with friends and settled in-app, which is the social half of personal finance most trackers ignore.
Spending insights
The app surfaces patterns worth acting on, such as a category running ahead of its usual week.
Offline tolerance
Local persistence and explicit network-state handling, so the app stays usable on a weak connection.
Push notifications
Delivered through Firebase, for budget thresholds and settlement reminders.
- Bare React Native rather than a managed wrapper, so camera, document access and push are first-class instead of constrained by a runtime.
- Firebase handles authentication and message delivery, keeping session and push infrastructure off our own servers.
- Its own API for accounts, transactions and budgets, with an operations console on top of the same data.
- Server state cached on the client so the interface stays responsive as transaction history grows.
- Built for its actual market: Rupee amounts and local conventions, not a US product localised afterwards.
- 01
Built the app in bare React Native rather than a managed wrapper, so native modules — camera, document access, push — are first-class instead of constrained by a runtime.
- 02
Handled authentication and push notifications through Firebase, keeping session handling and delivery off our own infrastructure.
- 03
Designed for intermittent connectivity with local persistence and explicit network-state handling, so the app stays usable when the connection drops.
- 04
Built the interface around the currency and conventions of its actual market rather than localising a US-shaped product afterwards.
- 05
Supported the app with its own API and an operations console for client records, configurable wallet presets and cohort analytics.
- React Native
- TypeScript
- Firebase Auth
- Firebase Messaging
- React Query
- REST APIs
Where it landed
Users track holdings and settle shared costs from one app that keeps working on a weak connection. The operations team manages onboarding defaults and reads cohort behaviour without an engineer running queries.
A short conversation with an engineer, not a sales qualification call. If we're the wrong people for it, we'll say so and point you somewhere better.


