Your phone holds the real database.
Not a cache of a server. Not an offline queue waiting to drain. Kashaa runs on SQLite on your device, and that database is the actual source of truth. Every read and every write hits local storage first and returns immediately.
What that buys you
Three practical consequences.
These aren't implementation trivia. Each one is a promise the app can keep because of how it's built.
It opens instantly
No spinner waiting on a network round-trip. The data is already on the device, so the first screen is the real screen.
It works with no signal
Airplane, basement, provincial bus, dead data plan. Full functionality - creating, editing, viewing, everything - not a read-only degraded mode.
It can't lose your entry
The write already succeeded before sync was ever considered. There is no failed request that can swallow the lunch you just logged.
You're mid-commute with one bar of signal and you want to log lunch before you forget. That's the case the whole architecture is built around.
Sync
Later, quietly, and never destructively.
Sync runs in the background - push, then pull, every ten minutes and whenever you bring the app to the foreground - and it checks for a live connection before it tries.
- Records carry a sync status, so the app always knows what has and hasn't made it up.
- Deletes are soft, so a delete on one device can propagate without destroying history.
- Merges are guarded by an updated-at comparison, so an older copy can never overwrite a newer one.
- Switch phones and nothing is lost - sign in on the new device and everything is where you left it.
Correctness
Balances that are still right after six months.
When you edit an existing transaction, Kashaa doesn't patch the balance by a difference. It reverses the original transaction's effect on the accounts, then reapplies the new one - inside a single database transaction, so it either fully happens or doesn't happen at all.
That's what keeps your balance exactly right after six months of edits, instead of drifting a few pesos at a time until you stop believing the number.
The same principle covers everything derived: balances, daily rollups, category breakdowns, budget progress, debt balances and your most-used subcategories are all computed by database views rather than by arithmetic sprinkled through the interface. One definition per number. The heatmap and the breakdown chart can't disagree, because they're reading the same rollup.
Even your subscription
Entitlement fails safe.
If you're offline, your last known subscription state is honoured, so Pro doesn't vanish on a plane.
And if a different account signs in offline with no verifiable state, Kashaa falls back to Free rather than leaking the previous user's subscription. Offline-first has to mean offline-correct, in both directions.
Related features
Debt tracker
Track debt by person - who owes you, who you owe, settled in one number.
Fast entry
A full-screen numpad. Amount, account, category, save - under five seconds.
Multiple accounts
GCash, Maya, bank, cash and credit cards in one real balance.
Spending heatmap
A calendar sized by what you spent. Patterns surface on their own.
Budgets
Weekly or monthly limits scoped to the subcategories you choose.
Log it before you forget it.
No signal needed. No spinner. Free to download on iOS and Android.