nano-git-db
A serverless distributed database that syncs over git.
A serverless, distributed, multi-user database that syncs with git. The single source of truth is an append-only, text-based transaction log that is conflict-free and consistent by definition, and the schema is a plain text file rather than SQL.
One small static binary carries three front ends over a shared core: a full CRUD command line, a terminal UI that works fine over SSH, and a self-hosted web UI that can stay local or be shared to the network with password sign-in. It suits a global team, and it suits one person with no git at all - git is optional, and without it the same binary is a fast local single-user database.
SQLite sits underneath as a rebuildable local view. The .sqlite file stays out of the repository; only the text log is synced.
Highlights
- Records sync across people and their changes auto-merge per field with git, so the conflicts that are the expected norm resolve in an unsurprising way.
- Schema defined in a friendly text DDL with no SQL to write, and changeable at any time. Old and new records stay compatible both ways, so there is never a migration.
- Rename tables and fields without losing or rewriting history.
- Views, including hierarchical tree grids for a task tree, an outline, or a threaded board, and saved queries kept next to the schema.
- Per-table extras, opt-in: a comment thread per record, an automatic audit trail of every change, and file or link attachments.
- Users and groups, with permissions down to the table, field, and row.