Work → Portfolio → Personal Projects

Beatbroke

A personal finance operating system — built from scratch, owned completely, no SaaS required.

End-to-End Build Solo Operator Live Product Personal Finance

The problem

Personal finance tools tell you what happened. They don’t run your framework. Mint tracks spending. YNAB allocates budgets. Brokerage dashboards show balances. But none of them adapt to a two-sleeve investment thesis, a formal liquidity policy, a cross-currency household, or the specific trade-offs of building wealth from Botswana while earning in the United States.

The deeper problem: every SaaS tool you rely on means trusting a third party with your numbers, accepting their categories, and losing access the moment you stop paying. For a system meant to run for decades, that’s an unacceptable dependency.

The product question was simple: what’s the minimum viable finance system I can own entirely, audit completely, and run forever — without a single subscription?

13
ETFs in core sleeve
7
Accounts, one policy
10+
Workflows automated

The product decisions

Ownership

Own vs. subscribe

Every number lives in source files I can audit, version, and read without internet access. SaaS tools normalise their categories onto your life. This system runs mine. The trade-off: I build everything. The benefit: I understand everything.

Privacy

No absolute values, anywhere

No dollar or Pula figures appear in any document, dashboard, or automation script. Percentages, index values, months-of-coverage, return-on-cost. The privacy rule is a permanent constraint enforced across every workflow — including the shareholder letters.

Allocation

A calculator that removes emotion

The gap-weighted injection calculator splits each new contribution proportionally by how far each ETF is below its target weight. No manual allocation math, no guessing, no anchoring to recent performance. The rebalancing logic is mechanical — so it actually runs.

Governance

Borrowed from Jim Collins

The Collins Decline Monitor applies the five stages of institutional failure — hubris, undisciplined pursuit, denial, grasping for salvation, capitulation — to personal finance. Assessed monthly. The goal is to catch drift before it becomes a crisis.

Interface

Mobile-first, data-last

The dashboard is the surface you actually open. It’s deployed for personal access from the phone — built mobile-first, driven by a single updatable DATA block with no API calls at runtime. All charts are inline SVG. It loads in milliseconds and works offline.

Automation

Workflows as first-class products

Every update workflow is codified as a Claude skill — a portfolio refresh, a liquidity update, a shareholder letter, a consistency check. Each is callable in one command, each is testable. The automation layer means the system runs even when attention is scarce.

How the system is run

Monthly shareholder letters

Every month, a Buffett-style letter is generated as a PDF — covering performance vs. the prior month, key decisions made, milestone check, macro backdrop, household economics, and a mandatory “What I Got Wrong” section. The letters exist to enforce discipline: if the system runs quietly for too long, something is being avoided.

Liquidity policy with teeth

Seven accounts across three families, each with a defined role, inter-account transfer rules, and formal loan terms when transfers cross family boundaries. Protected accounts require a documented justification logged before the dashboard will accept any draw-down. The policy exists on paper; the automation enforces it.

Four operating rules

The system runs on four rules: deploy surplus when savings rate is healthy (Rule 1), accelerate emergency fund rebuild when savings rate exceeds a threshold (Rule 2), pause investment deployment and redirect all surplus to the emergency fund when coverage falls below three months (Rule 3), and apply an expense cap in the following month when a category overspends (Rule 4). The rules create a self-adjusting system — priorities shift automatically as conditions change, without requiring a judgment call in the moment.

“The Collins Decline Monitor exists because discipline is easiest to maintain when things are going well — and hardest to find when you actually need it. The monthly letter forces the question even when the answer is uncomfortable.”

The stack

Frontend Vanilla HTML/CSS/JS, single-file documents Full ownership, zero dependency risk
Charts Inline SVG + HTML Canvas No library, no versioning, no CDN
PDF generation Python + ReportLab Shareholder letters built programmatically
Automation Claude skills (10+ workflows) Each workflow codified, testable, callable
Hosting Railway (Node.js/Express) Simple HTTPS, no lock-in
Auth Session-based Private routes for sensitive views
Data JSON files, no external database Auditable, portable, versionable
← Back to portfolio Read: Edge Model case study →