Project

Ledgerline: personal finance API

A self-hosted double-entry ledger with a tiny HTTP API and CSV importers for every bank I use.

  • Go
  • SQLite

The problem

Every personal-finance app wants my bank credentials. I want a ledger I
own, that outlives any vendor, in a format an accountant can read.

Design

Double-entry all the way down: SQLite schema is just postings, and every
importer (CSV from three banks, PayPal, Amazon) lowers into it. The API is
four endpoints. Reports are SQL views, not features.

Results

Running for two years. The best part is boring: ledger --verify proves
debits equal credits across every posting since day one, in 4ms.