Project Hierarchy

Dependency map of the GoBank family of Go projects down to the base libraries.

Dependency Graph

graph TD
    GB["gobank
Model bank simulation"] GBP["gobank-products
Product catalogue"] GBA["gobank-accounts
CoA, reports, periods"] GBW["gobank-workflow
Workflows & daily tasks"] GBD["gobank-db
Shared DB abstraction"] GBC["gobanks-customers
Customer identity & PII"] GL["go-luca
Double-entry accounting"] GLP["go-luca-pnl
P&L reports"] GP["go-postgres
DB abstraction (pglike)"] GTS["gotreesitter
Pure-Go tree-sitter"] PTA["plain-text-accounting-formats
PTA format definitions"] TSA["tree-sitter2abnf
Grammar to ABNF converter"] TSG["tree-sitter-goluca
Tree-sitter grammar for go-luca"] LFG["lofigui
HTML/CSS UI framework"] TP["task-plus
Release workflow"] GB --> GBP GB --> GBA GB --> GBW GB --> GBD GB --> GBC GB --> LFG GBP --> GL GBA --> GL GBW --> GL GBD --> GP GBC --> GP GL --> GP GL --> GTS GLP --> GL PTA --> GTS TSA -.->|generates| TSG TSG -.->|grammar used by| GTS TP --> LFG TP -.->|manages releases for| GB TP -.->|manages releases for| GL classDef app fill:#e3f2fd,stroke:#2196f3 classDef lib fill:#e8f5e9,stroke:#4caf50 classDef base fill:#fff3e0,stroke:#ff9800 classDef tool fill:#fce4ec,stroke:#e91e63 class GB app class GBP,GBA,GBW,GBD,GBC,GL,GLP,PTA lib class GP,GTS,LFG base class TSA,TSG,TP tool

Application   Libraries   Base (no internal deps)   Tooling (JS / code-gen)

Project Directory

Project Description Repo GitHub Pages Language
gobank Model bank simulation github pages Go
gobank-products Product catalogue & simulation engine codeberg / github Go
gobank-accounts Chart of accounts, financial reports, accounting periods codeberg / github Go
gobank-workflow Workflow engine & daily tasks (interest accrual, EOD) codeberg / github Go
gobank-db Core DB abstraction, shared schema, multi-user base codeberg / github Go
gobanks-customers Customer identity & encrypted PII storage codeberg / github Go
go-luca Double-entry accounting engine codeberg / github Go
go-luca-pnl P&L report generation github Go
go-postgres DB abstraction layer (pglike wrapper) github Go
gotreesitter Pure-Go tree-sitter runtime github Go
plain-text-accounting-formats PTA format definitions using tree-sitter github Go
tree-sitter2abnf Converts tree-sitter grammars to ABNF github Go
tree-sitter-goluca Tree-sitter grammar for go-luca syntax github JS (node)
lofigui HTML/CSS UI framework (no JS) github pages Go
task-plus Release workflow tooling github statichost Go

Related Articles on bytestone.uk

ArticleDateProjects Referenced
Claude, Singularity Postgres and Gokrazy 2026-02-07 go-postgres
ABNF and Plain Text Accounting 2026-02-26 go-luca, tree-sitter grammars
Cash Movements go-luca (core concept)
Luca Pacioli go-luca (naming origin)

Notes

  • gobank is the top-level model bank simulation, depending on the companion libraries below.
  • gobank-products defines the product catalogue (savings, loans) and simulation engine.
  • gobank-accounts provides chart of accounts, P&L, balance sheet, and accounting period management.
  • gobank-workflow orchestrates daily tasks (interest accrual, EOD processing) via go-workflows.
  • gobank-db abstracts the database layer — shared schema, migrations, multi-service base.
  • gobanks-customers handles customer identity with encrypted PII storage.
  • go-postgres wraps modernc.org/sqlite to provide a pglike interface — pure Go, no CGo.
  • gotreesitter is a pure-Go tree-sitter runtime used by go-luca and plain-text-accounting-formats for parsing PTA syntax.
  • tree-sitter-goluca is the grammar definition (JS/node); tree-sitter2abnf converts it to ABNF for documentation.
  • lofigui is the HTML/CSS UI framework used by gobank (demo submodule) and task-plus.
  • task-plus manages the release workflow for projects that include a task-plus.yml.
  • Dashed lines in the graph indicate non-Go tooling relationships (code generation, grammar definitions, release management).