rundraft

Every pull request gets a live preview URL.

Zero config, automatic teardown when the PR closes.

Sign in with GitHubFree — 1 repo, 3 previews, no card.Docs

How it works

acme/shop
├─apps/webbuilt
├─apps/apibuilt
├─packages/uishared code
└─rundraft.yml
+postgres:16image pulled
acme/shop
#42 add checkout
open
rundraftbot
✓ Preview readypr-42.preview.rundraft.sh3 services · 41 s
  1. Connect a repo. rundraft reads rundraft.yml — or a docker-compose.yml or Dockerfile.
  2. Open a pull request. Each app builds from its folder; images like Postgres are pulled.
  3. The preview goes live. / → web, /api → api, and the URL is posted on the PR.
  4. Merge or close. The preview is deleted and billing stops.

What we detect

Dockerfilebuild, run, expose on detected port
docker-compose.ymlbuilt and image services (postgres, redis), one URL
package.json + vite / cra / nuxtstatic build, nginx with SPA routing
rundraft.ymlmonorepos: per-app builds, /api routes, env

Pricing

Free€01 repo · 3 active previews · 0.5 CPU / 512 MB per preview · sleeps after 30 min idle
Pay-as-you-go€10 / mo+ €0.05 per preview-hour · unlimited repos · 2 CPU / 2 GB per preview, or large (2×) / XL (4×) · sleeps when idle (configurable), sleeping is free