WealthTrack.
A self-hosted household net-worth tracker: one container, plain-text data, crash-safe writes and charts that make a decade of trend readable at a glance.
Overview
Your data, on your infrastructure
WealthTrack tracks a household’s net worth across stocks, real estate, crypto, cash and liabilities with no cloud dependency and no subscription. Data lives in plain YAML and CSV files that are straightforward to back up, edit and audit.
The challenge
Simple to use, correct under the hood
Personal finance tools tend to be either too simple to be useful or too complex to maintain. The brief was fast monthly data entry and charts that make trends obvious, on top of a storage layer that stays consistent under concurrent writes and unexpected shutdowns.
The approach
Human-readable data, safe writes
The whole application ships as a single self-hosted container. Writes are atomic and serialised, so a crash or a concurrent edit can never leave a file half-written. Long-term projections compound monthly rather than applying a rough annual average, a correctness detail that matters across years of data.
Architecture
A single container, human-readable data.
- 01Data filesdatabase.yaml + datapoints.csv
- 02Hono APIAtomic writes · global mutex
- 03Vue frontendArea, line, bar & pie charts
- 04ProjectionsCompound monthly growth
Ships as one Docker image on a single port, with data persisted to a mounted volume created on first run.
What it does.
Net worth across asset categories
Stocks, real estate, crypto, cash and liabilities sit in one view, so the household figure is never spread across five spreadsheets. Each category is colour-coded and carries its own projected yearly growth rate. Adding a category is one entry in the configuration.
Interactive area, line, bar and pie charts
Area and line charts show how net worth moves over time, while bar and pie views break down where the money sits. Time ranges are switchable, so a weak month reads differently against a five-year trend. The charts are the product. Data entry exists to feed them.
Projections with configurable growth
Growth rates are set per category or overridden for a single asset, so a rental property and an index fund never share one assumption. Projections compound month to month rather than applying a rough annual average. Over a decade of data, that difference is material.
Income tracking
A dedicated dashboard tracks incoming cash alongside the assets it builds. Without it, a rising net worth says nothing about whether the household is saving. It keeps the inflow side visible next to the balance.
Dark and light theme
The whole interface, charts included, switches between dark and light. Both themes are designed as first-class rather than one being an inverted afterthought. The choice persists between visits.
Plain-text storage
Everything lives in plain files you can open, edit and back up like any document. No database to migrate, no proprietary format, no lock-in.
Single self-hosted container
The whole application runs as one container: a single command to deploy and one place where the data lives. No multi-service stack to operate.
Audit log of every change
Every change is logged, so a figure that shifts unexpectedly can always be traced to when and how. Writes are atomic and serialised, so the data files can never be left half-updated.
Want the next one to be yours?
Describe the system, who uses it and what it has to survive. You get a written view on scope, architecture and the first increment worth shipping.
Start a conversation