Receive a webhook, run a shell script, report the result. Not Jenkins (Java, heavy), not GitHub Actions (cloud). Dead simple pipeline runner for teams who just need to run a deploy script on push.
Every operation in Tinderbox is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/experiments — list all experiments with optional search and filter query parametersPOST /api/experiments — create a new experiment recordGET /api/experiments/{id} — retrieve a single experiment by IDPUT /api/experiments/{id} — update an existing experimentDELETE /api/experiments/{id} — remove a experimentGET /api/stats — aggregated statistics with status breakdownGET /api/health — health check endpoint for monitoringThe moment you store experiments in someone else's cloud, you have accepted their terms, their pricing changes, and their uptime. Tinderbox puts that decision back in your hands with a standalone binary that runs anywhere you can run a Linux process.
An agency managing experiments for multiple clients runs one Tinderbox 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.
Each experiment record carries fields for name, hypothesis, variant a, variant b, traffic pct. The API accepts partial updates, so you can PATCH individual fields without resubmitting the entire record. Listing endpoints support ?q= for keyword search and ?status= for filtering through the lifecycle. Backups are a file copy of the SQLite database in the data directory.
GET /api/experiments — List all experiments. Supports ?q=keyword for search and ?status=value for filteringPOST /api/experiments — Create a new experiment. Send JSON with at least nameGET /api/experiments/{id} — Fetch one experiment by IDPUT /api/experiments/{id} — Update fields on an existing experimentDELETE /api/experiments/{id} — Remove a experimentGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringSelf-hosted CI/CD trigger server. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool tinderbox
PORT=9670 ./tinderbox
http://localhost:9670
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 TINDERBOX_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./tinderbox
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.