Ask questions, answer them, vote, mark as resolved. The knowledge that lives in Slack DMs, made searchable and permanent.
Every operation in Soapbox is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/questions — list all questions with optional search and filter query parametersPOST /api/questions — create a new question recordGET /api/questions/{id} — retrieve a single question by IDPUT /api/questions/{id} — update an existing questionDELETE /api/questions/{id} — remove a questionGET /api/stats — aggregated statistics with status breakdownGET /api/health — health check endpoint for monitoringRunning a internal Q&A and Stack Overflow should not require a Kubernetes cluster, a managed database, and a DevOps team to keep it running. Soapbox is one file. Download it, run it, point your browser at it. That is the entire setup.
A devops team integrates Soapbox into their CI pipeline. A post-deploy hook creates a question record via the API. The stats endpoint feeds a Grafana panel. When something goes wrong, the team searches questions by keyword to find related records without switching tools.
On first launch, Soapbox initializes a WAL-mode SQLite database and starts an HTTP server. The web dashboard and API share the same port. Creating a question is a POST with JSON — the only required field is title. The response includes the generated ID and timestamp. Listing supports search, filtering, and returns items in reverse chronological order.
GET /api/questions — List all questions. Supports ?q=keyword for search and ?status=value for filteringPOST /api/questions — Create a new question. Send JSON with at least titleGET /api/questions/{id} — Fetch one question by IDPUT /api/questions/{id} — Update fields on an existing questionDELETE /api/questions/{id} — Remove a questionGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringSelf-hosted internal Q&A and Stack Overflow. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool soapbox
PORT=10100 ./soapbox
http://localhost:10100
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 SOAPBOX_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./soapbox
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.