Z ZABooks
ZABooks · Est. 2026 · Stellenbosch Folio 01

Accounting,
re‑bound for
South Africa.

A double-entry ledger built on the principles accountants already trust, tuned for the realities of running a South African business — VAT 201, fiscal year-ends that don’t begin in January, and a hard line between one company’s books and the next.

Principles

Three things that don’t bend.

  1. 01

    Double-entry, or nothing.

    Every journal balances to the cent before it posts. Draft entries stay drafts; posted entries become immutable. Reversals create new entries — the original is never edited. It’s boring and it’s exactly the point.

  2. 02

    South African, on purpose.

    A chart of accounts seeded for SA businesses. VAT codes aware of SARS categories. Fiscal periods that start in March, or whenever your year actually begins. A SARS VAT 201 layout the auditors recognise.

  3. 03

    Your books, isolated.

    Each company gets its own PostgreSQL database — not a shared table with a tenant column. Row-level security is a second wall. The only way data crosses is if you deliberately export it.

A page from the ledger

Numbers that
read like prose.

Tabular figures. Decimal alignment. JetBrains Mono for numerals so every rand lines up under the last. Accounting is a reading exercise long before it’s a writing one.

Journal entry · JE-2026-0142 Posted · 2026-04-18
Account Debit Credit
1100  Bank — FNB cheque 112 500.00
4000  Sales revenue 97 826.09
2200  VAT control — output 14 673.91
Totals 112 500.00 112 500.00
Balanced Invoice INV-2026-0118 · Acme (Pty) Ltd · 15% VAT
Primitives

Built on things that already work.

PostgreSQL, per tenant
One database per company. Schema migrations run per-tenant with advisory locks so two deployments never collide. You could pg_dump a single company and hand it to a new owner tomorrow.
.NET 10 & Blazor Server
The UI is C#, rendered on the server, streamed over a SignalR circuit. No SPA build pipeline, no drifted client state, no “the API returned a 200 but the view is stale.”
CQRS, the plain kind
Commands mutate through handlers with validation, logging and audit behaviours layered in the pipeline. Queries read through the same shape. No clever reflection magic, just small interfaces that do what they say.
QuestPDF for exports
Every report renders to a proper PDF with real typography — trial balance, income statement, balance sheet, aged debtors, SARS VAT 201 — not a screenshot, not HTML dressed up.
“The simplest accounting system is still a well-kept book. We just gave the book a keyboard.”
Open your books Designed and built in Stellenbosch.