Write daily entries, tag them, search them, review past entries on this day. No Day One cloud sync, no subscription, no vendor access to your private thoughts.
Download the binary and run it. Almanac starts serving immediately with a dashboard at localhost and a REST API for automation. No cloud account, no API keys to provision, no monthly invoice. Your data lives in a SQLite file you can back up, move, or query directly.
The moment you store entries in someone else's cloud, you have accepted their terms, their pricing changes, and their uptime. Almanac puts that decision back in your hands with a standalone binary that runs anywhere you can run a Linux process.
GET /api/entries — List all entries. Supports ?q=keyword for search and ?status=value for filteringPOST /api/entries — Create a new entry. Send JSON with at least bodyGET /api/entries/{id} — Fetch one entry by IDPUT /api/entries/{id} — Update fields on an existing entryDELETE /api/entries/{id} — Remove a entryGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringPoint curl at /api/entries to interact with Almanac programmatically. The API follows predictable REST conventions: GET to list or fetch, POST to create, PUT to update, DELETE to remove. The response schema matches the internal data model exactly, so what you see in the dashboard is what the API returns.
Self-hosted personal journal. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool almanac
PORT=8830 ./almanac
http://localhost:8830
Single binary. Embedded SQLite. No Docker. No database. No dependencies.
Your license key arrives by email within 5 minutes of checkout. Set it as an environment variable and restart the binary.
export ALMANAC_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./almanac
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.