A live app
for every
pull request.
Your compose stack spins up in Kubernetes with a forked database branch, env templates resolved server-side, and OAuth passthrough so sign-in just works. Reviewers stop reading diffs and start clicking buttons.
Drops into the stack you already have
One workflow, a preview per PR
Open a pull request. A live preview with a forked database branch is waiting by the time the review starts.
Connect
Connect your GitHub account in Destesi Connect and point an environment at your production DB through Snap. One-time per environment.
dst env remote default production-pgUpsert on PR open
Your GitHub Action calls dst preview upsert on opened and synchronize. Idempotent — keyed by PR number.
dst preview upsert --pr-number 42Review on a real URL
Preview URL gets posted to the PR. App + forked DB, real auth via OAuth passthrough, write-isolated per PR.
https://pr-42.your-domainA reviewer spots a typo, the agent fixes it.
Press Cmd + Shift + A on any preview. The in-overlay agent edits files, runs git commit, pushes — your CI redeploys the preview. The reviewer never leaves the page.
On first load each preview shows a change-summary modal: a 2-3 sentence AI digest of what the PR does, plus per-file add/delete counts. Re-shows on every new commit so reviewers never miss a meaningful update.
Read about the overlay →Built for the way teams actually ship
Forked DB branch
Each preview gets its own Snap-backed copy-on-write Postgres branch. Writes stay per-preview. Source DB is never touched.
Server-side env templates
${postgres.dsn}, ${postgres.host}, etc. resolve to the forked snap. Unresolved refs fail loud — never silently empty.
OAuth passthrough
The overlay rewrites outbound state for Google, GitHub, Microsoft and Slack so one pre-registered callback serves every ephemeral host.
Compose-native
Your existing docker-compose.yml is the preview definition. No parallel YAML to maintain. The runner builds inside a DinD pod.
One preview per PR
Idempotent upsert keyed by (environment, PR number). Repeated synchronize events redeploy in place — no drift, no duplicates.
Agent commits back
In-preview agent (Cmd+Shift+A) edits files, commits, and pushes — CI redeploys. The reviewer drives changes from the preview itself.
Change-summary modal
First-load dialog with a 2-3 sentence AI digest of the PR plus per-file add/delete counts. Re-shows on every new commit.
Scoped CI tokens
dst api-key create --preview-runner mints a token with preview:write on one environment. A leaked key can’t touch others.
Auto NodePort & ingress
Reserved port window, automatic service + ingress wiring, per-PR hostnames. The controller handles the Kubernetes plumbing — you ship the compose file.
Stop reviewing PRs on drifted staging.
Give every pull request a real preview, with real data, isolated per PR. Free to start.