UI Verify

For developers, product teams and coding agents

Catch UI regressions before they merge.

Screenshot every pull request. An AI judge tells a real regression from an intended change, so you review decisions, not diffs, and your coding agent can fix them for you.

Free to start. No card required.

Add Superhost badges to listings #482

1 regression
listings/ListingPageRegression
Baseline
Sunlit loft in Alfama 4.98

Lisbon, Portugal

$180 night

Current
Superhost
Sunlit loft in Alfama 4.98

Lisbon, Portugal

$180 night

AI judge: regression, high. The Superhost badge clipped the card, so the Reserve button is no longer visible.
Accept Deny

How it works

From pull request to merged, with agents in the loop. One real example: a PR adds a Superhost badge to a listing, and accidentally hides the button that books the stay.

01

A pull request goes up

Your team or your agent opens a PR. UI Verify screenshots every screen your change touches, then comments back with a plain verdict, not a wall of diffs.

Add Superhost badges to listings #482

Openagent wants to merge into main from add-superhost-badge
ui-verifybot commented now

Visual changes · 2 to review

1 intended change, 1 likely regression across 8 snapshots.

listings/ListingCard Intended
listings/ListingPage Likely regression

Review in the dashboard →

Some checks were not successful
ui-verify / visual1 regression blocks the mergeDetails
02

An AI judge decides what actually broke

It reads the diff and makes the call: this is a regression, not an intended change. The Reserve button vanished off the bottom, from a code change that looked harmless.

listings/ListingPage
Regression
Baseline
Sunlit loft in Alfama 4.98

Lisbon, Portugal

$180 night

Reserve
Current
Superhost
Sunlit loft in Alfama 4.98

Lisbon, Portugal

$180 night

AI judge: regression, high. The Reserve button is no longer visible. The new Superhost badge made the card clip its bottom edge, and the PR only asked for the badge.
03

Or your agent fixes it, before you even look

Ask your coding agent why the check failed. It pulls the diffs over MCP, tells an intended change from a regression, fixes its own code, and re-runs to green.

dev@stays - claude - 92×34
Welcome to Claude Code
cwd: ~/projects/stays
model: Sonnet 5 · uiverify (MCP) connected
> see why the PR checks failed
The UI Verify visual check failed. Let me pull what I changed on the UI.
uiverify - get_diff (MCP)(build: "#482")
  ⎿  2 changed: listings/ListingCard, listings/ListingPage
Two changes. The Superhost badge on the card is intended.
  But on the listing page the Reserve button is now invisible - that one is not.
Fixing: keep the badge, stop the card from clipping the button.
Update ListingCard.tsx
  ⎿  removed overflow-hidden, re-ran the check
re-run passed · 0 regressions · ready to merge

Your agent installs it

Create a project and paste one prompt into your coding agent. In about five minutes it reads the docs, writes the workflow, wires your capture, and opens the first PR. You just drop in your API key.

You’ll get a ready-to-paste prompt once your project is created.

dev@store - claude - 92×34
> set up UI Verify visual testing in this repo
I’ll read the setup guide and wire it into your CI.
Fetch uiverify.ai/llms.txt
  ⎿  read the setup guide + capture scoping
Detected Storybook. Adding the workflow and capture step.
Write .github/workflows/visual.yml
  ⎿  runs on every PR, uploads the Storybook build
Last step: add your UIVERIFY_API_KEY secret from your project.
opened a PR · first build is running

About 240 pull requests a month, free

We render only the screens your change touches and carry the rest forward at a fifth of a snapshot each, so a pull request barely dents your 10,000 free monthly snapshots. These are live numbers from our own 154-screen app.

At 50,000 snapshots a month, UI Verify is $169. Chromatic lists $299 and Percy $1,639 for the same volume. See the comparisons versus Chromatic · Percy · Applitools

The median PR on UI Verify’s own repo

154 screens

13 screens the change touched, rendered
13 snapshots
141 unchanged screens, carried forward at a fifth each
28 snapshots
AI review of every change
Included

This pull request

41 of 10,000 free

Median skip-unchanged PR build on our repo, last 60 days; a PR that touches shared config re-renders everything. Past the free tier, snapshots are $0.004 each.

Frequently asked questions

Isn't visual testing always flaky?

Flake is a capture problem, so we fix it at capture. Animations, timers, fonts, and async data are all pinned before the screenshot is taken, and any sub-pixel noise that still slips through, the AI judge labels a flake and keeps out of your review. A red build means a real change, not a rerun.

What if the AI judge gets it wrong?

You always have the last word. Every verdict comes with the judge's reasoning, a regression blocks the merge until a human accepts or overrides it, and nothing becomes a baseline on the judge's say-so. It pre-reads every diff for you; it never merges for you.

What counts as a snapshot?

One screen (a component or page) rendered in one browser at one viewport. You rarely pay for all of them: we render only what your change touches and carry the rest forward at a fifth of the rate, so a typical pull request bills a fraction of your full UI. On our own app, the median PR re-renders 13 screens out of 154.

How does pricing work?

Each plan includes a monthly bucket of snapshots (10,000 free, 30,000 on Starter, 65,000 on Pro). Beyond the bucket, extra snapshots are $0.004 each. In-plan they work out to about $0.003.

How does AI review pricing work?

An AI review is one vision verdict on a changed snapshot: intended change, real regression, or flake. Every plan includes a monthly bucket (100 free, 1,000 on Starter, 2,500 on Pro); beyond it, extra reviews are $0.03 each.

What happens when I go over my plan?

Extra snapshots are billed at $0.004 each, the same low rate. On the Free plan, snapshots pause until the next cycle or you upgrade.

What happens on my first build?

Your first build has no baseline to compare against, so there is nothing to review yet: every screen is captured and accepted as the starting baseline. From the next pull request on, UI Verify diffs against it and shows only what changed.

Do I need Storybook?

No. UI Verify works with your Vitest browser-mode component tests, your Storybook build, or your existing Playwright end-to-end suite. Add @uiverify/vitest or @uiverify/playwright to your tests and every component or page they render is captured, or point it at a static Storybook and every story becomes a snapshot. More frameworks are on the roadmap.

Which browsers do you support?

UI Verify renders in Chromium, Firefox, and Safari. Point a project at the engines you care about and every screen is captured in each. Edge runs on the same Chromium engine.

Do you support GitLab or Bitbucket?

UI Verify integrates with GitHub and Bitbucket, posting a check and a comment on every pull request. GitLab is on the roadmap.

When do you run?

On every pull request. UI Verify renders your components and pages, diffs them against the baseline, and posts a check with a comment, so you review only what changed.

Can my AI coding agent use it?

Yes. UI Verify runs an MCP server, so your coding agent (Claude Code, Cursor, and others) can list builds, inspect diffs, and accept or deny changes, the same review actions you'd take in the dashboard. It's included free on every plan.

Is my data secure?

Snapshots are encrypted in transit and at rest, isolated per team, and never used to train models. See our Security page for the details.

Can I cancel anytime?

Yes. Plans are monthly, so you can cancel or change tier whenever you like.

Ship UI changes with confidence

Start free in minutes with 10,000 snapshots a month, no credit card. Or book a demo and we’ll get you live in your CI.