Every pull request gets its own preview: an isolated database on one shared instance plus an optional live app, for teams that review running code instead of diffs. Self-hosted, no platform lock-in — everything is torn down when the PR closes.
PR opened / push PR closed
│ │
▼ ▼
sprout deploy ──► gateway ──► sprout teardown
│ │
├─ CREATE DATABASE ├─ stop containers
├─ start app (+ Traefik) └─ DROP DATABASE
└─ optional seed image
│
▼
preview URL for this PR
.sprout.yaml, a CI include, and the Dockerfile the app already ships —
plus two CI variables from the operator. The published gateway image
reports anonymous install telemetry by default
(SPROUT_TELEMETRY=off stops it). Humans start at
Getting started. Agents: paste the
Onboarding prompt into a coding harness and it
wires the repo. Live pitch:
the marketing page.
- Public docs — guides and reference (source · llms.txt)
- Getting started — first preview in one sitting
- Adopting a repo — write
.sprout.yaml, migrate at startup - CI integration — GitHub / GitLab wiring, reset
- Previews — databases, seeding, services, mail
- Operator deploy — compose stack, env, Traefik
- CLI reference — every command and flag
- Troubleshooting — symptom → fix catalogue
- Telemetry — what is sent, what it costs, off switch
- Onboarding prompt — paste into a coding harness
examples/adopting-repo/README.md— copy-paste starterCONTEXT.md— domain vocabularye2e/README.md— acceptance harness (bun run test:e2e)
bun install
bun test
bun run typecheck # turbo build + docs linksAGPL-3.0-only — see LICENSE.
