Notebird is a tiny local-first personal wiki designed to resemble old-school Twitter.
It runs as a local Go web app, stores Chirps (notes) in SQLite with attachments using CAS on your local filesystem, supports Markdown with wiki links, and uses HTMX/Alpine for small interactive updates. It almost functions entirely with the nobuild stack, but markdown and wysiwyg editing require CodeMirror & ProseMirror, which are bundled via esbuild.
This project is the sibling of noteleaf but with a focus on notes and the web.
If Air is not installed, just dev falls back to go run github.com/air-verse/air@latest.
You can optionally just run to start the server without hot reload.
- Go server (stdlib) and CLI (charm.sh libs), with SQLite persistence
- Commonmark compliant markdown, extended with
[[Wiki Links]]- Notes/markdown files are TiddlyWiki-inspired Chirps with ULID identity
- nobuild front-end core
- HTMX-powered feed/detail updates, with Alpine sprinkles for interactivity
- Fully featured editors
- CodeMirror Markdown composer with server-rendered preview
- ProseMirror WYSIWYG composer with Markdown source sync
- esbuild for CodeMirror & ProseMirror
just runThen open:
http://127.0.0.1:7331
By default Notebird stores data in your user config directory under notebird. For a throwaway local DB:
go run ./cmd/notebird --data-dir ./tmp/dev-dataBuild the image from the project root:
docker build -t notebird .Run Notebird with a persistent Docker volume:
docker run --rm -p 7331:7331 -v notebird-data:/data notebirdThen open:
http://127.0.0.1:7331
The container stores the SQLite database and local files in /data.
Install and build frontend assets:
just buildRun with Go hot reload via Air:
just devRun just to view all available commands.
TiddlyWiki for the idea of self-contained notes with wiki links
HeroPatterns for the default background pattern (grid/graph paper)
Twitter, circa 2008, for the design inspiration
