getbud

Earn; Spend; Grow;

getbud is a self-hosted budgeting app for Canadians. Your income, your spending, your TFSA room โ€” on your own server, in your own database.

docker pull ghcr.io/ctrl-research/getbud:latest

The whole picture of your money

One app for tracking what comes in, what goes out, and what's growing โ€” built around how Canadians actually save.

๐Ÿฆ

Canadian accounts, first-class

Chequing, savings, and credit cards next to RRSP, TFSA, FHSA, and non-registered investment accounts. Cash balances derive from transactions; investments from balance snapshots.

๐Ÿ

Contribution room

Enter your CRA room per year and getbud derives contributions and withdrawals from your transactions โ€” moving money between two TFSAs correctly doesn't count as new room used.

๐Ÿ“ฅ

CSV import that just works

Drop in any bank or credit-card export. Delimiter, date format, and amount columns are auto-detected; duplicates are flagged softly; any import reverts with one click.

๐ŸŒŠ

Sankey cash flow

See income streams pool and fan out into spending categories โ€” with whatever's left flowing to savings. The single most honest picture of a month.

๐Ÿ“ˆ

Trends & breakdowns

Monthly stacked bars by category, income vs. expense views, and a category donut with a full table. Colors follow your categories everywhere.

๐Ÿ’ฐ

Net worth over time

Point-in-time balance snapshots roll up into a month-by-month net-worth chart, stacked by account type, carrying each account's latest balance forward.

๐Ÿ”

Transfers done right

Moving money between your own accounts is never income or an expense. Both legs are linked, created and deleted together, and excluded from every report.

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘

Multi-user, fully private

Invite family via an email allowlist. Every account, transaction, and report is scoped to its owner โ€” nobody sees anyone else's money.

๐Ÿ”

Self-hosted & yours

A single Go binary with the UI embedded, Postgres behind it, and sign-in via Google or any OIDC provider (Authentik, Keycloak, โ€ฆ). All amounts stored as integer cents.

Up and running in a minute

Clone the repo, set a password, and go. Migrations run automatically; the first account to sign in becomes admin.

git clone https://github.com/ctrl-research/getbud
cd getbud
cp .env.example .env        # set POSTGRES_PASSWORD at minimum
docker compose up -d        # app on :8081

Read the docs โ†’