Skip to content
Work

Personal finance

Open source

Kosh

A self-hosted ledger for accounts, CSV imports, budgets, bills, goals, reports, and recurring transactions, built around money correctness, ownership checks, and recoverable operations.

Role

Creator · Full-stack engineering

Status

Open source

Stack

Next.js
TypeScript
PostgreSQL
Drizzle
pg-boss

Links

137

Passing tests

Integer

Minor-unit money

AES-256-GCM

Column encryption

Scope

A complete ledger, not a transaction demo

Kosh covers accounts, CSV imports, budgets, bills, goals, reports, and recurring transactions. The codebase separates domain logic, Drizzle/PostgreSQL persistence, and the Next.js application in a Turborepo.

Correctness

Money and ownership rules live close to the data

Money is stored in integer minor units. Transaction-sign constraints, ownership checks, and partial unique indexes protect ledger invariants and detect duplicate imports while respecting soft deletes.

Security and operations

Self-hosting includes recovery, migration, and access control

Sensitive columns use AES-256-GCM encryption. Read-only MCP tokens are scoped and stored as hashes, pg-boss runs background jobs, and the repository includes backup, restore, and migration-verification tooling. The test suite has 137 passing tests.

Next project

TinyReplay

A self-hosted browser session replay pipeline from capture to dashboard.