Finly is a local-first expense tracker: every record is written to your own device before anything touches the network. That is the opposite of the usual arrangement, where the server holds the truth and your phone shows a copy of it. Here the device holds the truth and the server holds a backup.
The practical result is that adding an expense with no signal is not a special offline mode. It is the normal path. If you are signed in, records sync to your account when a connection comes back.
What local-first actually means here
Records live in IndexedDB, storage built into your browser. Saving an expense is a local write that completes in milliseconds and never waits on a request.
Each record carries a flag marking it as not yet sent. When you have a connection and are signed in, anything flagged is pushed to your account and anything newer is pulled down. Nothing blocks on that. If sync never runs, your data is still complete on the device.
Deletes are soft, meaning a deleted record leaves a marker behind rather than vanishing. That is what stops a record you deleted on your phone reappearing from your laptop the next time both sync.
Why it matters more than it sounds
- You log expenses where signal is worst. Basements, car parks, markets, aeroplanes, lifts. An app that spins on a loading state at the till is an app you stop using.
- Speed. A local write is instant. No app in this category needs a network round trip to save a number, and the ones that do feel slow for no reason.
- Travel. Foreign SIM, no roaming, patchy hotel wifi, and this is exactly when you most want to track what you are spending.
- Nothing is lost if sync fails. A failed sync is a retry, not a lost expense.
- One sign-in, then it runs on your device. An account is needed to add or edit records, but only that first sign-in needs a connection. After it, the app reads and writes locally whether or not you are online.
What does still need a connection
Being honest about the edges is more useful than claiming everything works:
| Feature | Offline? |
|---|---|
| Adding, editing, deleting expenses and income | Yes |
| Budgets, insights, monthly breakdown, trend | Yes |
| Khata entries and balances | Yes |
| Recurring entries generating on schedule | Yes |
| History, search, filters, CSV export | Yes |
| Receipt photos | Yes, they never leave the device anyway |
| Voice entry | No. Browser speech recognition needs a connection |
| Live investment quotes | No. You see last known values |
| Syncing to your other devices | No, by definition. It queues |
| Signing in or creating an account | No |
Install it as an app
Finly is a PWA, so it installs to your home screen from the browser and opens full screen without browser chrome. There is no App Store or Play Store listing and nothing to download, which also means no update to approve and no install size to worry about.
On iOS use Safari, Share, then Add to Home Screen. On Android, Chrome offers Install directly.
The trade-off you should know about
Local-first means the device holds real data, not a disposable cache. If you never sign in and then clear your browser data or lose the device, those records are gone, and there is no copy anywhere to restore from.
Signing in fixes it, because sync puts a copy on your account. Receipt photos are the exception either way: they are stored on the device and never uploaded, even when signed in, so a lost device means lost photos. That is a privacy decision with a real cost, and it is stated in the privacy policy rather than buried.
The rest of the app
Offline is a property, not a feature list. Finly also has a khata ledger for money you lend and borrow, voice entry, per-category budgets, and portfolio tracking for PSX stocks, crypto and gold. It never asks for a bank login, which is part of why offline is even possible: there is no feed it needs to stay connected to.
Common questions
Does Finly work with no internet at all?
Yes, for everything except voice entry, live investment quotes, signing in, and syncing. Adding and editing records, budgets, khata, insights and export all work offline.
Do I need an account to use it offline?
You need one to add or edit records, but you do not need to be online at the time. Sign in once and the app works offline afterwards.
Where is my data stored?
In IndexedDB in your browser, on your device. If you sign in, a copy also goes to your account on a server run directly by the developer, not a third-party cloud.
What happens if I add expenses on two devices while both are offline?
Both sets are kept. When each syncs, the records merge. Nothing is dropped for having been created offline.
Will clearing my browser data delete my expenses?
It deletes the local copy. If you are signed in they come back when you sign in again. If you never signed in, they are gone. Receipt photos are gone either way.
Is it a real app or just a website?
It is a PWA, which is both. It runs in the browser and installs to your home screen, opening full screen like an installed app.
How much storage does it use?
Text records are tiny, thousands of them amount to very little. Receipt photos are the only thing that takes real space, and they are optional.