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 and one to delete, while previews also clean themselves up automatically when their pull request closes or their TTL expires.
TL;DR — Comment
/deploy-previewopson 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 is merged or closed.
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, AWS Lightsail, etc.)
│
▼
Preview URL is posted as a comment on the PR
│
├─── Developer comments "/qa-previewops" → AI code review, test coverage
│ mapping, HTTP smoke tests, and regression risk analysis
│ posted back to the PR (coverage on all plans; AI when an LLM
│ is configured or included with the plan)
│
├─── Dashboard → QA Hub → run Playwright tests against
│ the live preview URL directly from the browser (Pro/Enterprise/Custom)
│
├─── Developer comments "/perf-previewops" → a load test runs
│ against the live preview URL; results, SLO evaluation, and
│ configured AI insights are 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 unused environments do not accumulate costs indefinitely.
Quick start
- Install the GitHub App on your organisation or repository.
- Add your cloud credentials in the dashboard (required for Free and Premium BYOC plans).
- Comment on a PR:
/deploy-previewops - Previewops replies with the live preview URL within minutes.
That's it. For full onboarding details, see the Getting Started guide.
Plans
| Plan | Price | Monthly deploys | Concurrency | TTL max | BYOC required | Private repos |
|---|---|---|---|---|---|---|
| Free | $0 | 150 | 3 | 24 h | Yes | No |
| Premium BYOC | $49/mo | Unlimited | Up to 30 | Up to 30 days | 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 | Prerequisites, first deploy walkthrough, next steps |
| Commands | All commands and options: /deploy-previewops, /delete-previewops, /validate-previewops, /qa-previewops, /perf-previewops, alwaysOn |
| QA Testing | AI code review, test coverage mapping, HTTP smoke tests, and regression risk analysis with /qa-previewops |
| QA Hub | Dashboard-based Playwright test library: write, approve, and run tests against preview URLs (Pro / Enterprise / Custom) |
| Performance Testing | Load testing with /perf-previewops: VUs, duration, SLO thresholds, AI insights, baseline comparison |
| Configuration | .previewops.yaml schema, providerConfig reference, monorepo setup, runtime variables |
| Credentials | How to add credentials per provider, BYOC explained, security note |
| Plans & Billing | Plan comparison, deploy caps, private repo support, inactivity suspension, upgrading |
| Add-ons | Optional add-ons: Advanced Perf ($29/mo), Custom LLM (free), Preview DB ($39/mo) |
| CLI / GitHub Actions | GitHub Actions CI mode — deploy without installing the GitHub App |
| Self-hosting | Run your own Previewops instance: Terraform setup, non-GCP hosting, disabling the SaaS layer |
| Provider guides | Per-provider setup guides for all 10 supported deployment providers |
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 |