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 | Unlimited | Up to 30 ³ | Up to 30 days ³ | 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+ ² | 15 | 14 days | No | Public + private |
Annual billing saves approximately 28% compared to paying monthly.
Try Premium BYOC free for 7 days — no credit card required. An org admin starts the trial from the pricing page or dashboard and it unlocks full Premium BYOC access immediately, for every member of the organisation, with no card on file. Two limits are tightened while the trial runs, because AI QA and perf tests run on our infrastructure and a no-card trial cannot be billed for overage:
- A shared budget of 10 AI-powered runs, pooled across
/qa-previewopsand/perf-previewopscombined — not 10 of each, and not the 100 QA runs a paid Premium BYOC subscription includes. The pool is org-wide, so every member draws from the same 10. There is no overage tier during the trial: once the budget is spent, both commands stop until you subscribe.- Perf tests are capped at 5 VUs (vs. 10 once subscribed). Max duration is unchanged.
Add a payment method any time from the billing portal to continue after day 7 — your run counters reset and the full paid allowance takes effect on conversion. If no card is added, the org reverts automatically to the Free plan and no charge occurs. Each organisation can use the trial once, and using it is permanent: an org that trials and lapses back to Free cannot trial again.
² Custom plan deploy cap: the base tier starts at 500 deploys/month. Higher tiers (650 / 800 / 999) are selected at checkout based on the pricing tier chosen — see Custom plan pricing below.
³ Premium BYOC concurrency and TTL: the plan itself applies no cap, so your effective limits are whatever you set in
.previewops.yaml. That file boundsconcurrencyto 1–30 (default 3) andttlHoursto 1–720 h / 30 days (default 24 h) — so previews and TTL are not literally unlimited. Raise them explicitly if you want more than the defaults.
QA and verification feature access
The /qa-previewops command is available on all plans, and so is AI-powered analysis — on both BYOC plans it runs on your own LLM key via the free Custom LLM add-on (see ¹ below), and on managed plans it is built in. The QA Hub (dashboard-based Playwright test management and execution) is available on paid managed plans only.
| 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 | ❌ | ✅ | ✅ | ✅ | ✅ |
| QA Hub (Playwright test library + runs) | ❌ | ❌ | ✅ | ✅ | ✅ |
¹ AI features require the Custom LLM add-on (free) on both Free and Premium BYOC plans. Activate it in the dashboard and store your
LLM_PROVIDER,LLM_API_KEY, andLLM_MODELcredentials. Without it,/qa-previewopsruns coverage mapping and HTTP smoke tests only — AI analysis is skipped and no QA run credit is consumed. See add-ons.md.
QA run credits: the Free BYOC plan includes 50 AI-powered QA runs per month (hard cap — no overage). The Premium BYOC plan includes 100 runs per month, with additional runs billed at $0.20 each via Stripe metered billing.
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 |
| Runs per month | — | 100 | Unlimited | Unlimited | Unlimited |
| AI-generated scenarios | ❌ | ✅ ¹ | ✅ | ✅ | ✅ |
| AI post-run insights | ❌ | ✅ ¹ | ✅ | ✅ | ✅ |
| Historical baselines | ❌ | ✅ | ✅ | ✅ | ✅ |
¹ Requires the Custom LLM add-on (same footnote as QA above).
Perf run credits: the Premium BYOC plan includes 100 performance runs per month. Unlike QA runs there is no overage tier — performance tests execute on PreviewOps infrastructure, so this is a hard cap, and the allowance resets at the start of each billing period. Managed plans (Pro and above) are uncapped.
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. This includes redeploying the same PR (e.g. after a new commit or a config fix) — each trigger counts as one deploy credit. 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.
The effective value is the lower of your plan cap and the concurrency setting in .previewops.yaml, which accepts 1–30 and defaults to 3. Two consequences: your plan cap is a ceiling, not a starting point — you stay at 3 until you raise concurrency in .previewops.yaml — and a plan with no cap still tops out at 30 per repository.
One environment per PR on Free BYOC. The concurrency cap counts previews across the whole repository; separately, the Free plan allows only one active preview environment per pull request. Deploying a second provider to the same PR is blocked with a comment explaining the limit — run /delete-previewops first, then redeploy with --provider=<provider>. Premium BYOC and all managed plans can run several named environments side by side in a single PR (see --name and --env in commands.md).
TTL max — the maximum time-to-live for a preview environment. You can set the TTL in .previewops.yaml (ttlHours) or per-deploy with --ttl=, but never longer than your plan allows. Both inputs accept 1–720 h (30 days) and default to 24 h, so a plan with no TTL cap still tops out at 30 days. 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 | $39/mo + $2.00/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.