2025Solo buildshipped

BudgetMate

Family finance for Indian households — Go, Templ and HTMX in a distroless container. Zero maintenance, zero framework, zero data leaving the house.

budgetmate.app
GoGoTemplHTMXHTMXSQLiteSQLiteDocker (distroless)Docker (distroless)

01 / the problem

Family finance tools either sell your data or demand a frontend framework's worth of maintenance for what is, at heart, a ledger. BudgetMate is local-first: your money data stays on your hardware.

02 / what i built

  • Shipped at v1.0.0, production-ready, on a zero-maintenance philosophy.
  • Single static Go binary — runs on anything from a ₹500 Raspberry Pi to an enterprise cloud server.
  • Zero-knowledge CSV import: bank statements are parsed entirely in memory, never persisted raw.
  • Calm AI nudges — financial insights that respect attention instead of gamifying anxiety.

03 / architecture decisions

  • Go 1.22 chosen for compiled performance and a single self-contained executable — documented in an ADR, not folklore.
  • Templ + HTMX hypermedia UI: SPA feel with smooth transitions, but endpoints return HTML fragments (HATEOAS) — no React, no bundler, perfect SEO.
  • SQLite via the pure-Go modernc driver — zero CGO, so cross-compilation is trivial and there's no database server to babysit.
  • Google Distroless container: only the binary ships — no shell, no package manager, ~95% smaller attack surface.
  • Vertical-slice architecture: each feature owns its logic and its views, so changes stay local.

Want the full walkthrough — architecture, decisions, war stories?

ask me about it