ShipGuardeRELEASE CLEARANCE BUREAU
How it worksUse casesDocsPricing
AI VISUAL QA + PR REVIEW · FOR TEAMS THAT SHIP ON GITHUB

Every check passed. Nobody opened the page.

ShipGuarde opens it. It drives your deployed preview through the journey that matters and issues one release verdict, before merge.

Join the free 30-day pilotSee what it costs to skip it

Free for 30 days, no credit card. Or try the box first: it checks one public page in about a minute, no account.

RUN IT ON YOUR SITEFREE · NO ACCOUNT

Six read-only checks on one page: accessibility, performance, SEO, console and network errors, broken links, cookie handling. About a minute. Nothing is submitted, signed into, or changed.

ALL CHECKS · PR 482ACME-COMMERCE
build142 testslinttypes2 approvals
shipguarde / release-clearance

Release denied. 1 critical objection: search returns every run on the deployed preview.

MERGING IS BLOCKED
EXHIBIT A · THE SAME PULL REQUEST, SHIPPED TWICE

Two Fridays.

Same diff, same team, same Friday evening. One release went past the bureau on its way out. One did not. Every square is an hour.

WITHOUT THE BUREAU
00 HOURS OPEN
FRIDAY
18:41
WITH THE BUREAU
EXAMINING…
HOURS THIS RELEASE WAS BROKEN00
00061218
FRI
SAT
SUN
MON
TUE

the release is still broken.
nobody knows yet.

EXHIBIT A-1 · SUBMITTED WITH THE TICKET
Priya · engTUE 2:14 AM
u up
search is broken on prod
since when
idk. a customer emailed about it
on friday
friday??
we shipped friday evening
how many people just gave up
WITH THE BUREAU
ONE HOUR.
DENIED 18:41:47 · CLEARED 18:52.
  • 0 customers affected
  • 0 support tickets
  • 0 phones went off at 2am
  • 11 minutes, request to clearance
RULING 01 · CLEARED TO SHIP

friday, 18:41. the change is about to go live, and everybody is about to go home.

FRI 18:41SATSUNMONTUE 02:14
1 SEC ≈ 6 HOURS

79 hours broken on one side. Eleven minutes on the other. The diff was identical.

Join the free 30-day pilotRun an examination yourself
EXHIBIT B · THE CHANGE

The change was one line, and it was an improvement.

A reviewer approved it in four minutes, because it is the right call: the table re-rendered on every keystroke. What nobody traced is that the results array is filtered in place, so its reference never changes. Under OnPush, a reference that never changes is a view that never updates.

the tests still pass. unit tests do not render.

@Component({
selector: 'sg-runs-table',
templateUrl: './runs-table.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush,
})
export class RunsTableComponent {
onSearch(q: string) {
this.visible.length = 0;
this.visible.push(...this.all.filter(r => match(r, q)));
}
}
+1 / -0APPROVED IN 4 MIN142 TESTS GREEN0 LINT ERRORSLABELLED “PERF”
EXHIBIT C · THE EXAMINATION ROOM

Pick a journey. Watch it get examined.

You ask in plain English, the examiners drive the deployed preview, and the bureau issues one ruling. Change the flow and the ruling changes with it.

FILING #SG-482 · PR 482 → MAINAWAITING REQUEST
YOUR COMMENT ON THE PULL REQUEST. EDIT IT, IT IS A REAL FIELD
EXAMINERS · LIVE TRACE
  • press run. the examiners are waiting
EVIDENCE · THE DEPLOYED PREVIEW/RUNS
PREVIEWpr-482.acme-preview.app/runs
RESULTS SHOWN214
r-1041 · nightly regression 2h ago
r-1040 · a11y sweep 4h ago
r-1039 · seo & meta 6h ago
r-1038 · broken links 9h ago
PREVIEWpr-482.acme-preview.app/checkout
Email[email protected]
Card
TotalUSD 128.00
Pay USD 128.00
ORDER #A-77401 CONFIRMED · 2.4s
PREVIEWpr-482.acme-preview.app/sign-up
Work email[email protected]
Password

Password must contain a number.

CONTRAST 2.9:1 · WCAG AA NEEDS 4.5:1. THE ONLY TEXT EXPLAINING THE FAILURE IS THE HARDEST TEXT TO READ
Create account
THE DOCKETwhatever the examiners find gets written up right here, in the words a developer can act on, not a stack trace.
CRITICAL

Search returns every run. The filter has no effect.

What broke
Typing into Test Runs search leaves all 214 rows on screen.
Why it blocks
A core user flow fails on the deployed preview. Anyone with more than one page of runs cannot find one.
What the developer gets
Severity, the step-by-step walkthrough, before/after screenshots, and the full run link.
THE BUREAU HAS NOT RULED YET
HOW IT WORKS

From PR comment to proof.

01REQUEST

Ask from the PR

Install the GitHub app, add the shipguarde label, or write a plain-English @shipguarde comment. No test script required.

02VERIFY

Test the live preview

ShipGuarde reviews the diff and drives the deployed app through the requested user journey.

03DECIDE

Get evidence on GitHub

A plain-English verdict, severity, and replayable evidence land on the PR, ready to gate the merge or guide a fix.

CLEARED
Cleared to ship

Every examiner endorses. File it and merge with confidence.

RULING 01 · 0 OBJECTIONS · AUTO-MERGE
NOTES
Conditional clearance

Endorsed with noted regressions. A glance is advised before filing.

RULING 02 · NON-BLOCKING · WARN ON PR
DENIED
Release denied

A critical objection would harm users in production. Merge is held.

RULING 03 · 1 CRITICAL · MERGE BLOCKED
EXHIBIT D · ON OURSELVES

We pointed it at this site.

It would be strange to sell an examination and never sit for one. This is the most recent run on our own pages, exactly as the report has it. Nothing here is written by hand.

1 NOTE
ACCESSIBILITY

1 accessibility note (non-blocking)

CLEARED
BROKEN LINKS

All 26 links reachable

CLEARED
CONSOLE & NETWORK

No console or network errors

CLEARED
COOKIE & PRIVACY

No tracker privacy issues detected

CLEARED
PERFORMANCE

Performance 84/100

CLEARED
RUNTIME SECURITY

Runtime security checks passed

1 NOTE
SEO & META

1 SEO note (non-blocking)

CLEARED
VISUAL QA

The test run focused on the homepage, successfully verifying its correct loading and the visibility of the primary call-to-action. Both steps passed without any issues. The homepage appears to be functioning as expected according to these tests.

RULING · FILED WITH NOTES · 2 FINDINGS · 7 SEPTEMBER 2026
Open the full reportRun it on your own page
EXHIBIT E · THE LEDGER

What it found on other people’s sites.

Between 18 August and 7 September we pointed the same six checks the box above runs at the public pages of companies we wanted to talk to. No company is named. Every finding was checked by hand before it was counted.

89public pages examined80 companies, one read-only pass each
59came back with a real findingconfirmed by hand before it counted
30came back cleana clean pass is a result, not a failure
01 A link or tracking host that does not exist

Footer links to 404s, a privacy policy that was never deployed, a tracking pixel pointed at a hostname with no DNS record. Twelve sites, and none of them knew.

02 Buttons with no name

Carousel arrows, icon-only navigation, a demo overlay close button. A screen reader announces each one as "button" and nothing else. Ten sites.

03 No share image

The page claims a large summary card and ships no og:image, so every link pasted into Slack, LinkedIn or WhatsApp renders as a bare URL. Seven sites.

04 Pinch-zoom switched off

A viewport tag with user-scalable=no, usually on the pricing page. Low-vision visitors cannot enlarge the table. One line to fix. Six sites.

See what it finds on yoursHow the six checks work
ON THE RECORD · LEARNINGS

Every cleared run teaches the next.

App memory recalls the steps that worked, so repeat runs get faster and steadier. Your review guidance and muted findings steer what the examiners flag, applied automatically on every run.

LEARNINGSacme-commerce · app memory
Sign in via the “Continue with email” tab, not the SSO button x14
The cart drawer needs 600ms after “Add” before it settles x9
Dismiss the cookie banner before measuring layout shift x31
MUTED · TEAM GUIDANCE6
Ignore contrast on the legacy /admin theme muted
Marketing copy is out of scope for review muted
SECURITY

Safe access to your repo and preview.

“Do you run my code?”

No. We never run your repository’s own scripts, tests, or build. Your code is analyzed in an isolated, secret-starved sandbox using only our own tools, with a short-lived token scoped to the one repo and read-only. The GitHub App key and other tenants’ data never enter that sandbox, and its network access is limited to GitHub and package registries.

Secret-starved sandbox

Analysis runs in an isolated service that holds none of the platform’s keys.

Repo-scoped, read-only token

It gets a short-lived token scoped to the one repo, read-only. Never the GitHub App key.

Our tools only

We never run your repo’s scripts, tests, or build. No postinstall, no arbitrary execution.

Locked-down egress

Network access is limited to GitHub and package registries. No internal services, no metadata.

PRICING

Start with a real release.

A visual-QA run is one flow, driven end to end. A PR review is one pull request, read in full. Those are the only two things we meter. Every plan starts with a 7-day trial, no credit card.

Plan
Starter
Visual-QA on your URLs, on-demand and scheduled.
$41/mo
$490 billed annually · save 17%
MOST TEAMS START HERE
Team
Everything in Starter, plus PR review and Learnings.
$166/mo
$1,990 billed annually · save 17%
Business
Higher caps, priority concurrency, unlimited seats.
$416/mo
$4,990 billed annually · save 17%
Enterprise
SSO/SAML, SLA, DPA + security review, volume pricing.
Talk to us
Volume pricing
Visual-QA runs100/mo400/mo1,200/moCustom
PR reviewsNot on this plan100/mo200/moCustom
SeatsUp to 3Up to 10UnlimitedUnlimited
Concurrent agents4816Custom
Browser agentsAll of them: Visual QA, Visual Regression, Console & Network, Accessibility, Performance, SEO & Meta, Broken Links, Cookie & Privacy, Content & Copy, Vision Defect, Runtime Security
PR review agentsNoCode Review, Lint, Security, Dependencies & License, Schema Drift, Migration Safety, Bundle Budget
LearningsNoIncludedIncludedIncluded
Priority supportNoNoIncludedIncluded
SSO / SAMLNoNoNoIncluded
SLA + DPANoNoNoIncluded
 Start a 7-day trialStart a 7-day trialStart a 7-day trialContact us
Starter
Visual-QA on your URLs, on-demand and scheduled.
$41/mo
$490 billed annually · save 17%
Visual-QA runs
100/mo
PR reviews
Not on this plan
Seats
Up to 3
Concurrent agents
4
Learnings
No
Priority support
No
SSO / SAML
No
SLA + DPA
No
Start a 7-day trial
MOST TEAMS START HERE
Team
Everything in Starter, plus PR review and Learnings.
$166/mo
$1,990 billed annually · save 17%
Visual-QA runs
400/mo
PR reviews
100/mo
Seats
Up to 10
Concurrent agents
8
Learnings
Included
Priority support
No
SSO / SAML
No
SLA + DPA
No
Start a 7-day trial
Business
Higher caps, priority concurrency, unlimited seats.
$416/mo
$4,990 billed annually · save 17%
Visual-QA runs
1,200/mo
PR reviews
200/mo
Seats
Unlimited
Concurrent agents
16
Learnings
Included
Priority support
Included
SSO / SAML
No
SLA + DPA
No
Start a 7-day trial
Enterprise
SSO/SAML, SLA, DPA + security review, volume pricing.
Talk to us
Volume pricing
Visual-QA runs
Custom
PR reviews
Custom
Seats
Unlimited
Concurrent agents
Custom
Learnings
Included
Priority support
Included
SSO / SAML
Included
SLA + DPA
Included
Contact us

Trials include 30 runs. Founding-pilot teams get 30 days free on any plan, configured with us.

INQUIRIES

The questions people ask first.

Does it work with preview deployments?
Yes. Point ShipGuarde at a preview URL and describe the flow to check. It can test public previews immediately, or use encrypted credentials for a test account when the relevant pages require sign-in.
What GitHub permissions does it need?
Least privilege. It reads code through short-lived, repo-scoped tokens and writes checks and pull-request comments. It deliberately does not require write access to your file contents.
Can it block a merge?
By default a block is advisory: a neutral check. Opt in with failCheckOnBlock (in project settings or an in-repo .shipguarde.yml) to make it a failing check you can require in branch protection, or gate CI with the Action’s fail-on setting.
How does visual QA work without selectors?
A vision model looks at the rendered screen and locates each target, then a separate verifier confirms the step actually worked. Because it grounds on what is visible, not CSS selectors, your flows survive redesigns that would break selector-based tests.
Does ShipGuarde comment on every pull request?
No. Reviews are explicit by design. Add the shipguarde label, comment @shipguarde run, or call it from CI. Nothing runs until you ask, so there is no drive-by comment on every commit.
What does a verdict mean?
Every run ends in one decision: ship, ship with notes, or block (occasionally inconclusive), with findings grouped by category and a step-by-step trace so you can see exactly how it got there.
FOUNDING-TEAM PILOT · FREE FOR 30 DAYS

We’ll configure your first three critical flows with you.

Bring a real preview deployment. We’ll set up the journeys your team cannot afford to break, run them on a live pull request, and review the evidence together.

Join the free 30-day pilot

Code review checks the diff. ShipGuarde also checks the running product, so a release does not ship on the hope that nothing broke.

Join the free 30-day pilotStart a 7-day trial

NO CREDIT CARD · CONNECT GITHUB IN UNDER FIVE MINUTES · CANCEL ANY TIME

ShipGuarde

RELEASE CLEARANCE BUREAU
ISSUING AUTHORITY FOR SOFTWARE RELEASES
[email protected]

PRODUCT

  • Features
  • PR Reviews
  • Visual QA
  • Compare
  • Integrations
  • Pricing

RESOURCES

  • Free website check
  • Docs
  • How it works
  • Use cases
  • Sample report
  • Founding pilot
  • Blog
  • Changelog
  • FAQ
  • Support

COMPANY

  • About
  • Security
  • Status
  • Contact us
  • Privacy
  • Terms
  • Refunds
  • Sub-processors
FILED · SG-482 · ACME-COMMERCEEST. 2026