Core Budget
date
Jul 2, 2025
type
Project
year
2025
slug
core-budget
status
Published
tags
Website
Project
summary
A web app that helps you manage fixed expenses by categorizing them and calculating monthly set-asides.

tl;dr
- Spend half an hour once, setting up all your fixed expenses and split them into categories (⚡ monthly bills, 🚗 yearly bills, etc.)
- Core budget 🧮 calculates how much you need to put aside each month to make it all work.
- At the start of every month (or whenever your salary arrives), have a look at the categories and distribute money accordingly (best if you have multiple sub accounts in your bank account)
- Now you can put aside the same amount every month and are never surprised by any fixed expense ever again!
Personal Finances
Money. It’s one of those thing.
At the end of each month when money arrives in our family’s bank account we split it into different sub-accounts. We do this to make sure there’s always enough money available to pay for all our fixed expenses. And because that makes it easy to see how much money we have left for other things.
Here are the accounts we use for fixed expenses:
- 🏡 Mortgage / Rent payments
- 🔌 Monthly Bills (Electricity, Internet, etc.)
- 🚗 Yearly Bills (Car insurance, Home insurance, etc.)
Monthly bills include items that change from month to month, like Electricity. We need a lot more electricity in winter, but we don’t want to put more money aside in winter, so we summed up the total amount we pay over the course of a year, then took the average of that (with a bit of a buffer on top). If we add this amount every month, the whole year will work out nicely. (If you start in the middle of winter you’ll have to add the actual amounts until that goes below the calculated amount)
We also don’t want to be surprised when the car insurance - or any other yearly bill - comes due, so we added them all to the Yearly Bills account. Yearly total divided by 12, tells us how much we need to put aside each month to make sure there’s always enough money in this account for all these bills. (Start off with a buffer, because bills usually don’t come due in evenly spaced out intervals. But after a few months everything will work smoothly.)
Variable Categories:
With all the fixed expenses out of the way we’re now left with money for:
- 🥐 Everyday (Food, etc.)
- 💰 Surplus (Money for saving, investing, etc.)
We have defined a certain amount of money we want to spend on food and that goes into the Everyday account. That’s also the account our debit cards are attached to.
This makes it unnecessary to track every individual expense because all we need to do is look at how much money is left in this account.
Surplus is whatever is left after all of this. Luxury expenses come out of this account. Whatever is left at the end of the month, goes into a savings account or will be invested.
We developed this system in a spreadsheet and have tweaked it again and again over the past few years. At the end of every month, when money comes into our account, we look at these categories and split it up accordingly.
Whenever a bill comes due it’s paid out of the appropriate account. Car Insurance? → Yearly. Electricity? → Monthly. And so on and so forth. 95% of this happens automatically via direct debit and automatic payments set up for the correct accounts.
Core Budget - the Progressive Web App
And now I’ve recreated this in a simpler form - as a progressive web app!


Technical Details
Core Budget is implemented as a vanilla JS Progressive Web App with Firebase integration.
“Progressive Web App” means that
- Core Budget does everything in your local browser
- It works offline
- It can be installed on your phone (via Add to home screen)
But to make it more convenient to use, it creates a random
Budget ID
and 🔄 auto-syncs everything anonymously to a Firestore Database. - You don’t need an account, just note down your randomly generated Budget ID and enter it on another device to get all your data that way - also convenient for family sharing.
- But for added convenience I implemented the ability to create an account via Google or Email/Password. All this does is it links your Budget ID to your account. Just log in on another device and it will fill in the correct Budget ID for you.
- Multiple accounts can link to the same Budget ID - again, convenient for family sharing.
- Yes, if someone else knows your Budget ID, they can look at the budget saved under that ID. But nothing is stored in the budget that would make you personally identifiable. No account info, no access logs, nothing. (Unless, of course, you add your full name to a category, or something like that)
- You can turn off auto-sync in the settings if you want your data to 🔒 never leave your browser.
- You can export your data as JSON
- It’s all free! I made this for myself. If you find it useful too, I’m happy.
Give it a go!

