Well, I haven't yet got to the "web" part.
But I will do and will, of course, be using UIBUILDER to do it and Node-RED as the data orchestrator.
Having recently retired, I find myself in need of doing rather more sorting through my personal finances than I have for years. I normally run up some over-complex spreadsheet but in more recent years, I realised that I lean heavily on PowerQuery which is unique to Microsoft Excel.
As I might not always have access to that, I tried out a number of personal finance apps. But none of them did what I wanted and all of them were too complex for my needs.
So - break out the coding skills!
Been a long time since I did any serious SQL but SQLite seems the best tool for this job. So with some major help from the Claude AI app (I didn't use GitHub Copilot this time as I'm saving my Claude credits for uibuilder work), I got started.
And at the end of day 1: I have a set of node.js scripts that create the database, populate the reference data and import (most) of the downloaded transaction CSV's from our various accounts. (Some imports not quite working, a job for another day).
There is a categories/sub-categories table and a rules table that automates assignment of categories to transactions using a list of rules that can be full text, wildcard or regular expression tests against the transaction description.
Added some SQL Views to start being able to summarise data. Here is some test output to the console for a single year, nowhere near a complete set of categories yet:
Ultimately, a watch node in Node-RED will trigger import of new data as it is dropped into a folder and uibuilder will have a series of SPA pages showing different views of the data.
In later tranches of work, I'll allow inputs to the categories, ability to re-run the auto-categorisation and allow manual overrides (the auto-categorisation already caters for manual overrides). There are also comments and "who" (who triggered the spend or income) fields which can be manually input.
By-and-large, the summary views are sufficient for my use.
So while I am starting by building everything in code, it will all move to Node-RED eventually. Node-RED as a data orchestrator is a really powerful capability. And no need to have to manage multiple ExpressJS web hosts since Node-RED and UIBUILDER between them have all of that covered as well. ![]()







