Define experiments, split traffic, collect results, calculate statistical significance. Optimizely starts at $50K/yr. This is a binary and a dashboard.
Every operation in Crucible is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/test_runs — list all test_runs with optional search and filter query parametersPOST /api/test_runs — create a new testrun recordGET /api/test_runs/{id} — retrieve a single testrun by IDPUT /api/test_runs/{id} — update an existing testrunDELETE /api/test_runs/{id} — remove a testrunGET /api/stats — aggregated statistics with status breakdownGET /api/health — health check endpoint for monitoringA solo developer built a weekend project that needed test runs tracking. Instead of spinning up Postgres and writing an admin panel, they added Crucible as a sidecar process. The REST API covered every operation the project needed. Development time saved: roughly a full day.
Every testrun your team creates contains context that matters — name, suite, passed, failed, skipped. When that data lives in a third-party service, you are one acquisition or policy change away from losing access. Crucible keeps it local.
GET /api/test_runs — List all test runs. Supports ?q=keyword for search and ?status=value for filteringPOST /api/test_runs — Create a new testrun. Send JSON with at least nameGET /api/test_runs/{id} — Fetch one testrun by IDPUT /api/test_runs/{id} — Update fields on an existing testrunDELETE /api/test_runs/{id} — Remove a testrunGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringThe data model stores each testrun with 7 fields: name, suite, passed, failed, skipped. All fields are queryable through the search API. The dashboard renders test runs as cards with color-coded status indicators and inline metadata. Creating, editing, and deleting records is immediate — no save-and-deploy cycle.
Self-hosted A/B testing engine. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool crucible
PORT=9650 ./crucible
http://localhost:9650
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 CRUCIBLE_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./crucible
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.