Multiple profiles
Run separate budgets in one browser without crossing wires.
Why multiple profiles
The obvious one: separate household and personal budgets. The less-obvious ones: a budget for a side business, a sandbox for experimenting with goals, a copy of last year's budget you want to keep frozen for tax season.
Each profile is fully isolated. Switching profiles swaps every account, every transaction, every category, every report.
Storage layout
Every profile is one localStorage key (projectbudget:profile:<id>). The active profile id is at projectbudget:active. A small index at projectbudget:profiles lists names and last-opened timestamps so the switcher works fast.
What you can do with a profile
- Create — from scratch, or by importing a JSON export.
- Rename — change the visible name without touching the data.
- Duplicate — a deep copy with a new id. Useful for cloning before an experiment.
- Delete — soft delete. The profile moves to
projectbudget:trash:<id>for 7 days before it's purged. - Switch — swap the active profile. The store reloads and the UI refreshes.
The sample budget
The Profiles page always carries a Sample budget card. It opens the bundled sample household (the Castillos: two parents, four kids, five years of history and eighteen months of plans), loads a fresh copy if none exists, or restores the one you deleted. Deleting the sample works like deleting any profile: it sits in trash for 7 days, and either way a new copy is one click away. Dates in the sample slide forward when it loads, so the current month is always the current month.