Welcome to Previewops

Hey there 👋 — we're glad you're here.

Previewops gives every pull request its own live preview environment, deployed directly to your cloud account. No more "works on my machine" conversations, no more manually spinning up test environments, and no more waiting for staging to be free. Your reviewers, designers, and stakeholders can click a real URL on a PR and see exactly what's shipping — before it merges.

It takes one comment to deploy, one comment to delete, and everything cleans itself up automatically.

TL;DR — Comment /deploy-previewops on any pull request and Previewops builds your Docker image and deploys a live preview to your cloud account. The preview URL is posted back on the PR. It's deleted automatically when the PR closes.


Table of contents


How it works

Developer comments "/deploy-previewops" on a PR
         │
         ▼
Previewops builds a Docker image from the PR branch
         │
         ▼
Image is deployed to your cloud account (Cloud Run, Fly.io, Hetzner, etc.)
         │
         ▼
Preview URL is posted as a comment on the PR
         │
         ├─── Developer comments "/qa-previewops" → AI code review, test
         │    coverage map, HTTP smoke tests, and regression risk analysis
         │    posted back to the PR (coverage on all plans; AI on paid plans)
         │
         ├─── Developer comments "/perf-previewops" → k6 load test runs
         │    against the live preview URL; results + SLO evaluation
         │    (+ AI insights on paid plans) posted back to the PR
         │
         ▼
Preview is deleted automatically when the PR is merged or closed

Previews also expire after a configurable TTL (default: 24 hours), so idle environments never accumulate costs.


Quick start

  1. Install the GitHub App on your organisation or repository.
  2. Add your cloud credentials in the dashboard (required for Free and Premium BYOC plans).
  3. Comment on a PR:
    /deploy-previewops
    
  4. Previewops replies with the live preview URL within minutes.

That's it. For full onboarding details see getting-started.md.


Plans

Plan Price Monthly deploys Concurrency TTL max BYOC required Private repos
Free $0 150 3 24 h Yes No
Premium BYOC $49/mo · $423/yr Unlimited Unlimited Unlimited Yes Yes
Pro $79/mo · $683/yr 100 10 72 h No Yes
Enterprise $199/mo · $1,720/yr 300 30 7 days No Yes
Custom $300–$600/mo 500–999 15 14 days No Yes

See plans.md for cap details, upgrade instructions, and what BYOC means.


Documentation

Guide What's in it
getting-started.md Prerequisites, first deploy walkthrough, next steps
commands.md All commands and options: /deploy-previewops, /delete-previewops, /validate-previewops, /qa-previewops, /perf-previewops, alwaysOn
qa-testing.md AI code review, test coverage mapping, HTTP smoke tests, and regression risk analysis with /qa-previewops
performance-testing.md Load testing with /perf-previewops: VUs, duration, SLO thresholds, AI insights, baseline comparison
configuration.md .previewops.yaml schema, providerConfig reference, monorepo setup, runtime vars
credentials.md How to add credentials per provider, BYOC explained, security note
plans.md Plan comparison, deploy caps, private repo support, inactivity suspension, upgrading
add-ons.md Optional add-ons: Advanced Perf ($29/mo) and Custom LLM (free)
cli.md GitHub Actions CI mode — deploy without installing the GitHub App
self-hosting.md Run your own Previewops instance: Terraform setup, non-GCP hosting, disabling the SaaS layer
providers/ Per-provider setup guides for all 10 supported cloud platforms

Supported providers

Provider Platform
cloud-run Google Cloud Run (default)
fly Fly.io Machines
hetzner Hetzner Cloud + SSH
docker-ssh Any SSH server + Docker Compose
render Render.com
railway Railway
digitalocean DigitalOcean Droplets + SSH
aws-lightsail AWS Lightsail + SSH
aws-ecs AWS ECS Fargate + ALB
azure-container-apps Azure Container Apps