Define habits, check in daily, visualize streaks and completion rates. Habitica without the game layer, Streaks without the iOS lock-in. Your goals on your server.
Most habits tools fall into two camps: free products that harvest your data, or enterprise platforms that cost more than the problem they solve. Trailhead exists because neither option makes sense when you just need a reliable habit and goal tracker under your own control.
On first launch, Trailhead initializes a WAL-mode SQLite database and starts an HTTP server. The web dashboard and API share the same port. Creating a habit is a POST with JSON — the only required field is name. The response includes the generated ID and timestamp. Listing supports search, filtering, and returns items in reverse chronological order.
Run Trailhead on any server where you can execute a binary. The dashboard is immediately available at localhost, and the REST API integrates with your existing scripts and workflows. No external dependencies to configure, no managed service to subscribe to.
GET /api/habits — List all habits. Supports ?q=keyword for search and ?status=value for filteringPOST /api/habits — Create a new habit. Send JSON with at least nameGET /api/habits/{id} — Fetch one habit by IDPUT /api/habits/{id} — Update fields on an existing habitDELETE /api/habits/{id} — Remove a habitGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringSelf-hosted habit and goal tracker. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool trailhead
PORT=9380 ./trailhead
http://localhost:9380
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 TRAILHEAD_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./trailhead
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.