goldberry
Self-hosted ยท AGPL-3.0

Pocket money, kept on the books.

Goldberry is an allowance tracker for families. Parents add money with a note, kids sign in with a PIN to see what they can spend, and asking for money is a request a parent approves.

  • One container
  • SQLite or Postgres
  • Works without JavaScript
  • No cloud, no CDN
The parent dashboard: two requests waiting for approval and a card per kid with their Spend, Save, Give and Invest jars
A kid's home on a phone: the Spend, Save, Give and Invest jars, with locks and money waiting for approval

Everything a family's money needs, nothing it doesn't

A ledger you can trust, a kid-sized interface on top, and the things that teach: saving up, giving, waiting, and watching money grow.

  • Spend, Save and Give

    Every deposit splits across jars, 70/20/10 by default. Rename, add or archive jars and change the split per kid.

  • Requests, not withdrawals

    Kids ask for money from what's available. It's held until a parent approves (optionally less, with a note) or denies.

  • Jar locks

    A parent's lock is hard. A kid can lock their own jar and break it only through a server-enforced gauntlet.

  • Recurring allowance

    Weekly, fortnightly or monthly on the household's calendar. Catches up after downtime and never pays twice.

  • Goals

    "Nintendo Switch, $300" fills from Save in priority order. Reaching one tells everyone and offers "Ask to buy it".

  • Parent-paid interest

    A monthly rate on the average daily balance, with an optional cap and a "leave it for 12 months" projection.

  • Pretend investing, real prices

    Kids buy slices of real US stocks and funds from an Invest jar. Losses come off by themselves; profits wait for a parent to pay.

  • API and AI tools

    A JSON API for scripts and Home Assistant, plus an opt-in MCP server so assistants like Claude can check balances.

  • An honest ledger

    Append-only, in integer cents. Undo is a visible reversal, never an edit. Kids see the comment; parents can keep a private note.

A tour

Taken from the demo household, the Riverbanks: three months of chores, birthdays and saving up, with Ava and Leo.

One page per kid

Every jar, its locks and interest, what's waiting on you, the ledger with one-click reversals, goals, allowance and investing, side by side.

How the money rules work โ†’

A parent's view of Ava: four jar tiles with locks and interest, a pending request, the ledger, a sparkline of last month and an investing summary

Breaking your own lock takes effort

"Saving for a Switch" was past-you's idea. Breaking a self-lock means a loud warning, the goal it would empty, a 10-second countdown and a 3-second press-and-hold. The server enforces every step, so it can't be skipped.

Why it's on the server โ†’

The kid's PIN pad
The red lock-breaking screen: the kid's own reason, the goal dropping from 41% to 0%, and a countdown

Money over time

A kid's balance over a week, a month, three months or any two dates, as the total or every jar. Each dot is a change that leads to what happened. Drawn as SVG on the server, so it works without JavaScript.

How the charts are drawn โ†’

Ava's money over three months, one line per jar

Investing, explained for kids

An Invest jar fills from the split. Kids buy slices of real US stocks and funds at live prices (from a free Finnhub key); orders after hours wait for the open. Every investing word has a kid-friendly "?" tip.

Turn on investing โ†’

The Invest page: $18.55 ready to invest, $51.02 invested and up $1.02, the market is open
A fund's page: price for one share, what you own, and a Buy form

Scripts, Home Assistant and Claude

Parents mint scoped tokens on their account page: read for a dashboard, write for jars and goals, money to post entries. The JSON API at /api/v1 has atomic batches, dry runs, idempotency keys and backdated entries (to pre-load balances tracked elsewhere); the opt-in MCP server at /mcp lets AI tools use the same rules.

JSON API ยท MCP server ยท Tokens

The API tokens card: a Claude token with read, write and money scopes and a read-only Home Assistant token

Phone-first, light and dark

Big targets and a hyperlegible typeface for small hands, a full desktop layout for parents, and a dark theme that follows the device. Installable as an app (PWA), and every page works without JavaScript.

A kid's graph of their money over three months, on a phone
Leo's home in the dark theme

Install

One container and one volume. Put it behind your TLS reverse proxy (Caddy, Traefik, a Gateway) and you're done.

Docker Compose

mkdir goldberry && cd goldberry
curl -fsSLO https://raw.githubusercontent.com/chinny-labs/goldberry/main/deploy/compose/compose.yaml
openssl rand -base64 32 > goldberry_key.txt
docker compose up -d
docker compose logs goldberry | grep -i "setup token"

Open https://<host>/setup, paste the setup token and create the first parent. Then add your kids.

Kubernetes (Helm)

helm install goldberry oci://ghcr.io/chinny-labs/charts/goldberry \
  --namespace goldberry --create-namespace
kubectl logs -n goldberry deploy/goldberry | grep -i "setup token"

Signed multi-arch images (amd64, arm64) with SBOM and provenance. Nightly SQLite snapshots, a portable export between SQLite and Postgres, /healthz, /readyz and /metrics.