This content originally appeared on DEV Community and was authored by J Bishop
I’ve been tracking my spending since 2008. Back then, the app ecosystem wasn’t really a thing yet. I was living abroad and I just wanted to know where my money was going.
I’ve been in and out of different countries ever since. Through all of it, I needed to track what I was spending. Not budget it, not forecast it, not connect it to my bank. Just write down what I spent so I wouldn’t get a nasty surprise when I checked my balance.
And every expense tracker I looked at over the years wanted something from me before I could start. Create an account. Link your bank. Connect your credit card. Set up a budget. Choose a plan.
I have a credit card and more than one bank account, some of them foreign. Connecting all of that to an app is not “easy setup.” It’s a project. And I didn’t want auto-import anyway. I just wanted to type a number.
The Google Form era
I ended up doing what any reasonable person would do: I made a Google Form.
One form per purchase. It dumped into a spreadsheet. The spreadsheet pulled everything together into months, categories, totals. For seeing the big picture, it was actually great.
For input? Not so much. Every entry meant opening Chrome, filling in every field, even when it was the same location or category as the last one. Currency conversion was a manual job I’d do later, if I got around to it. Too much friction. Easy to skip one entry, then two, then you stop entirely. And once the habit dies, the whole system falls apart.
I used that setup for years. It always kind of worked and kind of didn’t.
What I actually wanted
It came down to one rule: logging an expense should be faster than buying the thing.
Three taps. Open the app, type the amount, hit save. If it takes longer than that, I won’t do it. And if I won’t do it, it doesn’t matter how many features it has.
That constraint shaped almost every design decision. The amount field is focused the second you open the app. You don’t pick a category or location unless you want to. Those fields are hidden by default so they don’t slow you down. After you save, the screen resets and you’re ready for the next one.
Get in and get out. Under 5 seconds.
The currency thing
This is the part that’s personal to me. I live in Thailand. I spend in baht every day. But my brain still thinks in Canadian dollars. A couple times a year I travel and add a third currency to the mix.
Most expense trackers either don’t handle multiple currencies at all, or they handle it badly. You pick one currency and that’s it.
I wanted to log lunch in baht, a hotel in US dollars, and a coffee in euros, and have it all convert back to CAD automatically. Each transaction stores the original amount, the original currency, and the exact exchange rate used. You can always see what you actually paid.
I also built Travel Mode. When you’re abroad and every purchase is in the same foreign currency, you lock that currency so the app defaults to it. Flip it on when you land, flip it off when you’re home. 162 currencies total.
How I built it
Flutter, because I wanted to ship on Android first but keep the door open for iOS. Cross-platform from the start.
For storage, I used Hive, a fast local NoSQL database. Everything is encrypted on-device. There’s no server, no cloud, no backend. I actually built a backend in an earlier version of this project, but it was overkill. So I started over. Keeping it on-device was partly a privacy decision and partly a practical one. Expense data is personal, and I didn’t want to maintain a server.
Offline-first from day one. I travel. I’m not always on Wi-Fi. The app ships with bundled exchange rates so conversions work without internet. When you do have a connection, it fetches fresh rates. But it never depends on one.
I used AI throughout the build. Started with ChatGPT, moved to Claude for most of the heavy lifting. Architecture, debugging, code generation. It’s 2026. If you’re building solo and not using AI, you’re making your life harder than it needs to be.
Six months of solid effort from idea to Play Store.
What’s not there yet
The app doesn’t do everything. No export yet. No backup or restore. No iOS. No receipt scanning. All on the roadmap, but not built.
If you need bank sync, this will never be your app, and that’s fine. There are great options for that. This is for people who want to manually log what they spend, fast, and move on.
Try it
It’s called Enough Spent. Free on Google Play. Right now there aren’t even any ads in it.
If you try it, I’d love to hear what you think. What’s missing? What’s annoying? What would make you keep using it or stop using it? I’m one person building this and real feedback is the most useful thing I can get.
This content originally appeared on DEV Community and was authored by J Bishop
