Hendy Saputra
Back to projects

Personal project · In progress

Kasa

A simplified bank built from scratch in Go, with real accounts, transfers, and loans on a genuine double-entry ledger, so anyone can see how core banking actually works.

Stack
Go · PostgreSQL · Core Banking · Double-Entry Ledger · Fintech · DDD

Overview

Kasa is a simplified bank I built from scratch in Go, so anyone can learn how core banking actually works, not just use it.

It has real accounts, transfers, and loans, backed by a genuine double-entry ledger, plus a built-in Learn Mode that explains concepts like double-entry bookkeeping and interest accrual as you use it.

Under the hood it's built around the same guarantees that keep money safe in production: a ledger that never drifts, transactions that survive retries, and account state that stays correct under concurrent load, drawing on real core banking work at Hana Financial Group.

Highlights

  1. 01Real accounts, transfers, and loans, all backed by a double-entry accounting ledger with atomic posting and enforced balance invariants.
  2. 02Built-in Learn Mode that explains concepts like double-entry bookkeeping and interest accrual as you use the app, not in a separate doc.
  3. 03Modeled on production banking concepts: idempotency, account lifecycle, holds, reversals, and transaction safety.
  4. 04Built in idiomatic Go with PostgreSQL, sqlc, goose, and Docker, using a layered architecture and TDD for domain-critical logic.