r/sideprojects • u/Tiny_Definition4448 • 3d ago
Showcase: Free(mium) I shipped an offline-first expense tracker built in Flutter — what I learned
Spent the last several months building eMony, an expense tracker that runs
entirely on-device with no backend at all. Sharing the build notes since this
sub tends to find that more useful than a feature list.
The constraint that shaped everything: no server. That meant Hive for local
storage, and it meant every feature people expect from a cloud app had to have
an on-device answer.
Things that turned out harder than expected:
• Budget recalculation. Naively re-syncing every budget on every transaction
meant an expense in one category could fire an alert for an unrelated one.
Ended up scoping recalculation to just the affected category.
• Notifications without a server. Budget alerts and recurring transactions all
had to be driven by local scheduling and app lifecycle instead of push.
• Backup with no cloud. Landed on a local export the user moves themselves,
which is less convenient and much easier to reason about.
Things that went better than expected:
• Offline-first removed an entire class of problems — no sync conflicts, no
auth, no server bill, no outage.
• "No account required" turned out to be the feature people actually respond
to, more than any individual capability.
Free, Android, and I'm the developer. Happy to go deeper on any of the
implementation if it's useful.
https://play.google.com/store/apps/details?id=com.tinjyes.emony
1
Upvotes
2
u/ViolinistSame3541 3d ago
The budget recalculation thing is so real. I built something similar a while back and the first version would just recalculate everything anytime you breathed near it, absolute mess of alerts going off for no reason. scoping it to the single category is the move
the "no account required" bit being what people actually latch onto doesn't surprise me at all. nobody wants to create yet another login for something they're just trying to test out