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.
notion imagenotion image

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.)
page icon
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)
page icon
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.)
page icon
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.
page icon
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!
Dashboard makes it easy to see how to divide up your monthly incomeDashboard makes it easy to see how to divide up your monthly income
Dashboard makes it easy to see how to divide up your monthly income
Easy setup for all your fixed expensesEasy setup for all your fixed expenses
Easy setup for all your fixed expenses
 

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!

 
With auto-sync enabled, your data will be saved under a randomly generated Budget IDWith auto-sync enabled, your data will be saved under a randomly generated Budget ID
With auto-sync enabled, your data will be saved under a randomly generated Budget ID
No account needed, but you can link your Budget ID to one for convenience.No account needed, but you can link your Budget ID to one for convenience.
No account needed, but you can link your Budget ID to one for convenience.
 

Leave a comment