Log your MRR, track churn, visualize growth, forecast runway. For bootstrapped founders who want real revenue metrics without paying Baremetrics $50/mo.
Every operation in Assayer is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/subscriptions — list all subscriptions with optional search and filter query parametersPOST /api/subscriptions — create a new subscription recordGET /api/subscriptions/{id} — retrieve a single subscription by IDPUT /api/subscriptions/{id} — update an existing subscriptionDELETE /api/subscriptions/{id} — remove a subscriptionGET /api/stats — aggregated statistics with status breakdownGET /api/health — health check endpoint for monitoringWhen regulators or clients ask where your subscriptions data is stored, the best answer is a specific server you own in a specific jurisdiction you chose. Assayer makes that answer straightforward because the data never leaves your infrastructure.
An agency managing subscriptions for multiple clients runs one Assayer instance per client on isolated VMs. Each instance gets its own data directory. There is no shared database, no multi-tenant risk, no worry about one client's data appearing in another client's export.
The data model stores each subscription with 7 fields: customer name, plan, mrr, status, start date. All fields are queryable through the search API. The dashboard renders subscriptions as cards with color-coded status indicators and inline metadata. Creating, editing, and deleting records is immediate — no save-and-deploy cycle.
GET /api/subscriptions — List all subscriptions. Supports ?q=keyword for search and ?status=value for filteringPOST /api/subscriptions — Create a new subscription. Send JSON with at least customer_nameGET /api/subscriptions/{id} — Fetch one subscription by IDPUT /api/subscriptions/{id} — Update fields on an existing subscriptionDELETE /api/subscriptions/{id} — Remove a subscriptionGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringSelf-hosted revenue and subscription tracker. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool assayer
PORT=9830 ./assayer
http://localhost:9830
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 ASSAYER_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./assayer
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.