WealthTrack
A self-hosted family net-worth tracker with dead-simple data entry and beautiful charts.

Your money, on your machine
WealthTrack tracks a household’s net worth across stocks, real estate, crypto, cash and liabilities — no cloud, no subscriptions. Data lives in plain YAML and CSV files that are trivial to back up, edit and audit.
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 dead-simple monthly data entry with charts that make trends obvious — while keeping the storage layer robust and concurrency-safe.
Human-readable data, safe writes
The whole app runs as a single self-hosted container. Writes are built to survive a crash or a clash without corrupting data, and long-term projections compound properly rather than using a rough annual average — small correctness details that matter over years of 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.
Net worth across asset categories
Stocks, real estate, crypto, cash and liabilities all live in one view, so the household number is never spread across five spreadsheets. Each category is colour-coded and carries its own projected yearly growth rate. Adding a category takes one entry in the config.
Interactive area, line, bar & pie charts
Area and line charts show how net worth moves over time, while bar and pie views break down where the money actually sits. Time ranges are switchable, so a bad month reads differently against a five-year trend. The charts are the point of the app — data entry exists to feed them.
Projections with configurable growth
Growth rates can be set per category or overridden for a single asset, so a rental property and an index fund are never forced to share the same assumption. Projections compound properly month to month rather than a rough annual average — over a decade of data, that difference adds up.
Income tracking
A dedicated dashboard tracks cash coming in alongside the assets it builds up. Without it, a rising net worth says nothing about whether the household is actually saving. It keeps the inflow side visible next to the balance.
Dark / light theme
The whole interface, charts included, switches between dark and light. Both themes are treated 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, nothing proprietary, nothing to lock you in.
Single self-hosted container
The whole app runs as one self-hosted container — a single command to deploy, one place your data lives. No multi-service stack to babysit.
Audit log of every change
Every change is logged, so a number that shifts unexpectedly can always be traced back to when and how. Writes are built to survive a crash or a clash — the data files can never be left half-updated.