Plans & Billing
Previewops offers five plans ranging from a free BYOC tier to enterprise and custom arrangements.
Plan comparison
| Plan | Price | Monthly deploys | Concurrency | TTL max | BYOC required | Repos |
|---|---|---|---|---|---|---|
| Free | $0 | 150 | 3 | 24 h | Yes | Public only |
| Premium BYOC | $49/mo · $423/yr | Unlimited | Unlimited | Unlimited | Yes | Public + private |
| Pro | $79/mo · $683/yr | 100 | 10 | 72 h | No | Public + private |
| Enterprise | $199/mo · $1,720/yr | 300 | 30 | 7 days | No | Public + private |
| Custom | $300–$600/mo | 500–999 | 15 | 14 days | No | Public + private |
Annual billing saves approximately 28% compared to paying monthly.
QA feature access
The /qa-previewops command is available on all plans, but the AI-powered analysis is gated:
| Feature | Free | Premium BYOC | Pro | Enterprise | Custom |
|---|---|---|---|---|---|
| Test coverage mapping (TS, JS, Python, Go, Ruby, Java) | ✅ | ✅ | ✅ | ✅ | ✅ |
| AI code review | ❌ | ✅ ¹ | ✅ | ✅ | ✅ |
| HTTP smoke tests | ❌ | ✅ ¹ | ✅ | ✅ | ✅ |
| Regression risk analysis | ❌ | ✅ ¹ | ✅ | ✅ | ✅ |
| k6 performance testing | ❌ | ✅ | ✅ | ✅ | ✅ |
¹ Premium BYOC AI features require the Custom LLM add-on. Activate it in the dashboard and store your
LLM_PROVIDER,LLM_API_KEY, andLLM_MODELcredentials. Without it, the command runs but AI analysis is skipped. See add-ons.md.
Premium BYOC QA credits: the Premium BYOC plan includes 100 AI-powered QA runs per month. Each run above that cap is billed at $0.20 via a Stripe metered billing component. The Free BYOC plan has no AI QA access.
Performance testing access
The /perf-previewops command requires Premium BYOC, Pro, or higher. It is not available on the Free plan.
| Feature | Free | Premium BYOC | Pro | Enterprise | Custom |
|---|---|---|---|---|---|
| Load testing | ❌ | ✅ | ✅ | ✅ | ✅ |
| Max VUs | — | 10 | 50 | 100 | 150 |
| Max duration | — | 30 min | 30 min | 30 min | 30 min |
| AI-generated scenarios | ❌ | ✅ ¹ | ✅ | ✅ | ✅ |
| AI post-run insights | ❌ | ✅ ¹ | ✅ | ✅ | ✅ |
| Historical baselines | ❌ | ✅ | ✅ | ✅ | ✅ |
¹ Requires the Custom LLM add-on (same footnote as QA above).
Advanced Perf add-on: doubles the max duration to 60 min and enables the
--set-baselineflag and baseline comparison on all paid plans. See add-ons.md.
What the caps mean
Monthly deploys — the number of times /deploy-previewops can trigger a successful deploy within a calendar month. The counter resets on the 1st of each month. When the cap is reached, Previewops posts a comment on your PR explaining the limit and links to the upgrade page.
Concurrency — the maximum number of active preview environments for a single repository at one time. When the limit is reached, the oldest preview environment is automatically deleted to make room for the new one.
TTL max — the maximum time-to-live for a preview environment. You can set a shorter TTL in .previewops.yaml (ttlHours), but never longer than your plan allows. Previews are automatically deleted when their TTL expires.
BYOC — Bring Your Own Cloud
Free and Premium BYOC plans deploy previews directly to your own cloud account. You provide the cloud credentials; Previewops orchestrates the deployments there. This means:
- Infrastructure costs (compute, networking) go to your cloud bill, not Previewops.
- You retain full ownership and visibility of the deployed resources.
- You must store your provider credentials in the Previewops dashboard before your first deploy. See credentials.md for instructions.
Pro, Enterprise, and Custom plans have BYOC as an option, not a requirement — Previewops can handle the cloud account for you, or you can bring your own.
Private repository support
The Free plan only supports public repositories. Attempting to deploy a preview from a private repository on the Free plan will result in a bot comment explaining the restriction and linking to the upgrade page.
All paid plans (Premium BYOC, Pro, Enterprise, Custom) support both public and private repositories.
When the deploy cap is reached
When your monthly deploy cap is exceeded, Previewops posts a PR comment letting you know and includes an upgrade link. No deploy is attempted. The counter resets automatically on the 1st of the next calendar month.
Pro and Enterprise plan subscribers benefit from overage protection — deployments continue even after the cap is reached and overages are billed via a Stripe metered component at the end of the billing period.
Custom plan pricing
The Custom plan is priced based on your monthly deploy volume using the formula max($299, deploys × $0.60), rounded to the nearest $10.
| Monthly deploys | Price |
|---|---|
| 500 | $300/mo |
| 650 | $390/mo |
| 800 | $480/mo |
| 999 | $600/mo |
Annual billing for Custom plans is available by contacting sales — no automatic online discount applies.
For 1,000+ deploys per month, contact the sales team for a custom enterprise quote.
Add-ons
Optional add-ons extend your plan's capabilities. See add-ons.md for full details.
| Add-on | Price | What it does |
|---|---|---|
| Advanced Perf | $29/mo | Doubles perf test duration (30 → 60 min), enables --set-baseline and baseline comparison |
| Custom LLM | Free | Store your own LLM API key in the dashboard for AI-powered QA and perf analysis |
| Preview DB | $29/mo + $0.75/branch above 30 | Automatic isolated Postgres branch per PR — DATABASE_URL injected automatically |
Inactivity suspension
To keep the free tier sustainable, organisations on the Free and Premium BYOC plans that have not deployed any previews for 60 consecutive days are soft-suspended. When suspended:
- Any deploy attempt posts a comment notifying the team.
- Suspension is automatically cleared the next time a deploy is successfully triggered — no manual action needed.
After 90 days of inactivity, the organisation's record is fully removed. The GitHub App installation is not affected; if the org deploys again it receives a fresh free-tier account automatically.
How to upgrade
- Go to the Previewops pricing page and choose a plan.
- Click Upgrade — you will be redirected to a Stripe checkout page.
- After successful payment, your plan is activated immediately and the new caps take effect on the next deploy.
You can also upgrade from the authenticated dashboard at /control/dashboard.
How to add credentials (BYOC plans)
See credentials.md for a step-by-step guide on adding provider credentials via the dashboard.