The persistent visual QA layer for AI-shipped UI

Catch the layout your agent broke
while fixing something else.

Your agent reordered a sidebar — and quietly broke the checkout page on mobile. Agent screenshot checks verify one change, then forget it. UICanary is the memory layer we're building underneath: baselines across every branch, diffs grouped by PR, desktop + mobile in one run. Percy's 5,000 free screenshots are gone by week two at 10 PRs a day × 5 pages × 3 viewports. Ours is a flat monthly price — not per screenshot — with a planned free tier of 1,000/mo.

$1 is a fully refundable deposit, not a subscription · Free tier (1,000 screenshots/mo) is planned for launch, not open today

PRESALE — PRODUCT IN DEVELOPMENT
UICanary diff review UI — concept mock (presale, product in development)

Concept mock of the planned diff review UI. UICanary is currently in presale and under development — the interface above illustrates the vision, not a shipped product.

Screenshots evaporate.
Regressions creep back at 2am.

AI writes UI 10× faster — and ships visual bugs 10× faster too.

🧠

Eyes without memory

Your agent can verify what it just built — but what about the next PR? The next branch? The staging deploy at 2am? Screenshots evaporate; regressions creep back in. A one-off check is not a system of record.

🧾

Quotas punish the workflow AI created

Percy's free tier is 5,000 screenshots a month. Ship 10 PRs a day across 5 pages × 3 viewports and you're done by week two. AI assistants made you iterate 10× faster — per-screenshot billing taxes exactly that.

🔊

"Free" costs you in noise

Playwright screenshots plus a loose threshold catch big layout shifts — and drown you in font-rendering and animation false positives. No review UI, no PR comments, no baseline management across branches and OSes.

Eyes are free now. Memory isn't.

Agent skills answer "is this change OK?" — once. UICanary is meant to answer "did every release stay correct?" — on every release. That product is not live yet. The UICanary column is the plan.

UICanary
(planned)
PercyAgent skills
(ProofShot / pursr)
Playwright DIY
Answers"Did every release stay correct?"Same"Is this change OK?" (one-off)"Here's a PNG, you figure it out"
Baselines across branchesPlannedYesNoDIY
Multi-viewport in one runPlannedYesManualDIY
Team review workflowPlannedYesNoNo
Noise management over timePlannedPartialNoDIY
Screenshot quotasFree: 1,000/mo. Paid: flat monthly price, no per-screenshot chargeYesNoneNone
Starting priceFree $0 (1,000/mo, planned)
Early bird $19/mo flat, for life
Pro $38/mo flat
Free 5k/mo, then paid plans — verify the current priceFreeFree
Honest guide: use agent skills when you want a quick check right after the agent writes code — they're free and good at that. UICanary is for when visual correctness has to hold across every PR, branch and release — once it exists. Nothing in the UICanary column ships today. Prices checked Oct 2026; competitors' plans change — verify before you buy.

Planned: about 5 minutes to set up

One line in your workflow. Baselines from the first run. This flow is the plan — there is no Action to install today.

1

Add one line to your workflow

The plan: paste the Action, add your API key as a secret. Setup should take about 5 minutes once it ships.

2

Render every PR across your viewports

Planned: desktop, tablet, mobile — baselines stored per branch, history kept.

3

A PR comment, and a history you can audit

Planned: diffs grouped by what actually changed, so you review 6 real changes instead of 60 screenshots. See when something broke, not just that it broke.

Planned workflow — illustration only. No GitHub Action is published. Do not paste this into a real workflow.

# .github/workflows/visual.yml
# ILLUSTRATION of the planned workflow. This Action is not published and cannot be installed.
- name: Visual regression
  uses: <NOT-PUBLISHED>/uicanary-action@<placeholder>
  with:
    api-key: ${{ secrets.UICANARY_API_KEY }}
    viewports: "1280x800, 390x844"
    threshold: 0.1

Built to remember

What a one-off screenshot check can't do. Everything below is planned — none of it is live.

🧠 A memory for your UI

Planned: baselines stored per branch, with run history, so you can audit when anything broke, not just that it broke.

🗂️ Grouped PR diffs

Planned for AI-iteration workflows — diffs clustered by what actually changed, so you review 6 real changes instead of 60 screenshots.

🔇 Noise-resistant thresholds

Planned: per-project tuning for fonts, animations, timestamps and dynamic content, so false positives go down over time instead of piling up.

📐 Multi-viewport & breakpoints

Planned: desktop, tablet and mobile in one run.

💵 A flat monthly price

Early bird is $19/mo. Pro is $38/mo. Neither is billed per screenshot. The planned free tier is 1,000 screenshots/mo.

🔐 Your data, your retention

Design commitment, not a control you can use today: encrypt screenshots in transit and at rest, let you set retention, and let you export or delete baselines. Removing the Action should be one line in your workflow file.

Flat monthly pricing

Three prices, no per-screenshot meter. Free is planned for launch. Early bird is the $1 presale. Pro is the regular price later. Same planned product — different price and timing.

Free

$0/mo
  • 1,000 screenshots / mo
  • 1 project
  • 7-day baseline retention
  • Community support
Join the waitlist

Planned for launch — not usable today. This button joins the waitlist. It does not start a free account.

$1 PRESALE

Early bird

$19/mo, locked for life
  • Flat $19/mo — screenshots are not billed on top
  • Unlimited projects (planned)
  • Grouped PR diffs + baseline history (planned)
  • Multi-viewport & breakpoints (planned)
  • Priority support (planned)
Reserve early bird for $1

$1 is a fully refundable deposit, not a subscription. If we don't launch, you get it back — no questions asked. The $19/mo price starts only if the product launches.

Pro

$38/mo
  • Flat $38/mo — screenshots are not billed on top
  • Same planned features as Early bird
  • Regular price, after the early-bird window
Join the waitlist

Not for sale. Opens after the early-bird window closes. This button joins the waitlist.

FAQ

Straight answers, no marketing fog.

They're great at point-in-time verification: "did the agent's last change look right?" UICanary is planned to run on every PR in CI, keep baselines across branches, and give a team one place to review. Think of it as: the agent skill is eyes, UICanary is memory. It does not do that yet. If a quick check after each agent run is honestly enough for you, stick with the free tools.
Playwright gives you PNGs. The plan for UICanary is the other 80%: a review UI, PR comments, cross-OS baseline management, and noise thresholds — the parts that take weeks to build yourself and die to maintain. None of that is shipped.
On the planned free tier, one screenshot is one rendered viewport of one URL in one CI run, capped at 1,000 per month. Early bird ($19/mo) and Pro ($38/mo) are flat monthly prices. This page does not add a per-screenshot charge on top of either.
Not today — there is no product storing pages. The design commitment is: encrypt screenshots in transit and at rest, make retention configurable, and let you delete them. We do not plan to train models on your UI. That is an intention for the unreleased product, not a control you can exercise now. The only data this site handles today is what you submit on the waitlist or email us, plus the $1 deposit processed by Creem.
The plan is per-project thresholds for fonts, animations and timestamps: approve a baseline once, and only real changes flag after that. That tuning does not exist yet.
The design commitment is that baselines can be exported as PNGs, and that removing the Action is one line in your workflow file. Export is not available now, because there is no product and no Action. If we don't launch, the $1 deposit is refunded in full.

Eyes are free now. Memory isn't.

$1 reserves $19/mo for life. Refundable if we don't launch.

Lock in $19/mo for life — $1 presale

Or join the waitlist for launch updates. This does not start the free tier — that tier is planned, not open.