Nano-git DB: Open-Source Edition
A serverless distributed database that syncs over git.
A multi-user database that syncs with git. There is no server and no SQL. The database is a folder of append-only text, and each write is its own line, so when two people edit at once git merges field by field instead of overwriting a whole record. The schema is a plain text file too.
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.
- Prebuilt for Linux, Windows, macOS, and FreeBSD on x86-64 and ARM64, with an install script that checks each download against its published checksum.