Skip to content
SNOWBROS

A multi-currency ledger where the database computes every balance

A fast ledger of who owes whom, across currencies. Three clients (web, Android, Windows) on one Postgres engine, with releases built by CI.

Accounic dashboard on Windows: net position, receivable and payable totals, and today's debits, credits and settlements.
  • Keyboard navigation. Ctrl+1 to Ctrl+5 moves between screens on Windows, with no transition to wait on.

  • Computed in Postgres. Net position comes from a SQL view. No client adds up a column.

  • Currency of record. Each figure stays in the currency it was entered in; conversions are marked as approximate.

The problem

Traders who run accounts with people and firms across India and the UAE were reconciling in notebooks and spreadsheets. Exchange rates moved, totals were re-added by hand, and nobody trusted the figure on the page.

What we built

Accounic answers four questions: who do I have an account with, what do they owe me, what do I owe them, and what has been settled. Balances are SQL views, every write goes through a validated function, and each entry keeps the currency and rate it was recorded at. Clients format money; they never add it up.

An Accounic account drawn as an instrument: cash in hand certified over an engraving, with the opening balance as a stamped counterfoil.

Decisions, and why

  • The database computes every balance

    Receivables, payables and net positions are views in Postgres. The Next.js and Flutter clients only display them, so three clients can never disagree about a total.

  • Money in minor units, per currency

    Amounts are integers. How many minor units make a major one belongs to the currency: the yen has none, the Kuwaiti dinar has three.

  • History is never re-priced

    A foreign entry keeps its original amount, currency, rate and source. A later rate move cannot change a recorded transaction.

  • Settlements never edit the past

    Paying down a balance records money that moved and allocates it first-in first-out. The original transaction stays intact, so the history reads the way it happened.

Scope

  • Credits, debits, settlements and transfers between people
  • Opening balances counted separately from cash in hand
  • Live exchange rates with a fallback provider, cached per owner
  • PDF statements, CSV and JSON exports from one filter contract
  • Demo build with sample books, isolated by the same row-level security
  • In-app update check against published GitHub releases

Built with PostgreSQL, Supabase, Row-level security, Next.js, TypeScript, Flutter, Riverpod, GitHub Actions

Release history

Accounic, recent releases
RevChange
1.16.1Updates never open the demo installer; ledger rows align in fixed columns
1.16.0Counterfoil & Seal: a new face for Android and Windows
1.15.0Accounic Demo ships as its own installer
1.13.0The online demo
1.12.0Activity export

Next sheet

STC Academy

An academic platform with three portals and one source of truth