← Notes
article14 May 2026

I built a budgeting app I can't share

Not everyone needs a budget, but if you do ...it can be a real pain to find one that works.

Not everyone needs a budget

Not everyone needs a budget. But those that really do, often give up because of the time and effort it takes to keep up with it. Doesn't help that most tools are too rigid to work around your own pay cycle.

This is the thought that I've had in my head for most of the last decade. I have a pretty good handle on my finances, but the idea of an app that pulls my transactions & tracks my spending and saving goals on my terms has always been appealing. I just haven't found one that works for me.

... and yet I keep trying

The pattern is pretty much always the same, I get annoyed at whatever I'm currently using and spend a weekend looking for something better. I find something that works for a few months, but then something gets updated and breaks my workflow.

I try to find workarounds up to a point, but when faced with installing dubious .APKs from less-than-reputable sites just to access your own data, you start to think maybe it's time to build your own again.

Friction

The biggest challenge with budgeting apps is friction; both in terms of setup and maintenance. It is just too tedious to be manually entering transactions, but without that level of tracking, you don't get the insights you need to make informed decisions.

And once you do get everything up and running, you're faced with accepting the fact that your data is now in someone else's hands and they decide on how you should budget. Getting paid on the 15th? Too bad, the app is strictly monthly. Apps advertising US-centric financial services? Too bad, you can't get those in Finland.

And for someone who had gotten accustomed to the level of quality of the real banking apps, the experience of using a poorly made android app that hasn't been updated in years was just too much to bear.

The dream

So I knew that in order to solve the friction, I would need something that was able to pull my transactions and let me keep the data. I could then build my own app and budgeting cycle on top of the data.

I had the skills to build an app or two, but how to get the transaction data? APIs seemed out of the question so I went down the rabbit hole of thinking ways to intercept android push messages. I know, I know, this would've been horribly hacky and unreliable, but I was desperate to find a solution, okay?

The powers-that-be

All the way back in 2018 I started hearing rumours about some newfangled EU directive aimed at giving users more control over their financial data. The idea being that PSD2 would force banks to relinquish control and provide API access to third parties authorized by the user. So in theory, you could pull your own transactions into whatever you built. I waited and waited, but my dreams of being able to access my own data freely never materialized.

Implementation took ages to happen, but it is there now. Being able to manage your accounts from multiple banks under one roof is reality, at least in some ways. But none of this helps me with my budgeting.

A new hope

Then one day in late 2025 saw this unassuming mention of a Finnish fintech company Enable Banking providing API access to bank accounts by the grace of PSD2 and it was like a lightbulb went off in my head. If I could somehow get an account there I could just build my own app that pulls my transactions from the banks and does exactly what I want it to do. No more compromises, no more friction*.

Turns out all I had to do was sign up and make a new app. They even allow you to use allowlisted accounts while waiting for your app approval, so I could start building right away.

Build, baby, build

So build I did. I started by setting it up as a Progressive Web App so that I could install it on my phone, get push notifications working, use fingerprint authentication, and all that good stuff.

The data was pulled from the banks and stored in a Cloudflare D1 database, with a simple backend running on a Cloudflare Worker to handle the API calls and business logic.

With all of this newfound freedom I was able to iterate quickly and make changes based on immediate feedback from my own personal use. I could set my budget cycle to match my actual pay dates rather than a forced monthly reset. I was able to add virtual "savings buckets", change goals, or anything else I wanted. And it turned out pretty great even if I say so myself.

App home screen
Homescreen
Chart variations
Exploration of chart types

It was a great experience of building an app from scratch to something that I would actually use on a daily basis. All of it hosted nicely on Cloudflare Pages + Worker + D1 leveraging their very generous free tier. I even went as far to set up Sentry for error tracking and custom Cloudflare analytics to track usage patterns.


The end is never the end

Now all I have to do is ...uh, set up a company, go through a KYB process, and wait for the app to be approved.

And that, my friends (or foes), is the story of how I built a budgeting app that I can't share with anyone else.

Home screen showing budget warnings
*Well, maybe a little bit of friction, but at least it would be _mine_ to deal with.

Have a thought? get in touch →

images: unsplash.com