Guide
Visual regression testing without CI
Every tool in the category assumes a git branch, a pull request and usually a Storybook. If the site is the artefact and it changes when someone presses Publish, none of that applies.
Published 15 September 2026
- 1. Why the pipeline assumption does not transfer
- 2. Building it yourself
- 3. Rough comparison
- 4. The hosted version
Percy, Chromatic and Applitools are all built around the same workflow, and for the teams they sell to that is exactly right — the useful moment to catch a visual change is before it merges.
If you maintain live sites for clients, you have none of it. No branches, no pull
requests, no component library. The site is the artefact and it changes when someone
presses Publish. The entire category was built for a workflow you do not have, and the
advice you will find assumes you are one npm install from having it.
1. Why the pipeline assumption does not transfer
CI-based visual testing compares two builds you control: this branch against main. It needs a build step to hang itself on, and a baseline that is itself a build.
Watching a live site is a different shape. There is no build, no branch and no pull request — just a URL whose contents change when a person edits a CMS entry, and often that person is not you. What you need is a comparison of the same URL across time, triggered by publication rather than by a commit.
That shape is closer to uptime monitoring than to testing, which is why the tools targeting it tend to be priced and named like monitors.
2. Building it yourself
Genuinely feasible, and worth being clear about which part is the work.
The easy part, roughly an afternoon: Playwright or Puppeteer to capture
a full-page screenshot at a set of widths, pixelmatch to compare against a
stored PNG, a cron job, and an email when the difference exceeds a percentage.
The part that is the actual product:
- Noise. A raw pixel diff fires on rotating testimonials, carousels, timestamps, view counters and cookie banners. Left alone it fires every day, you stop reading the alerts, and at that point you have built nothing.
- Ignore zones. Per-page, per-region exclusions for the parts that are supposed to change. Needs a UI to draw them, or you will never define them.
- Thresholds. Subpixel antialiasing and font-rendering differences between capture runs are real and meaningless. Too tight and everything fires; too loose and a moved card passes. This is per-site tuning, not a constant.
- Grouping. One CMS template change affects every blog post. Forty alerts for one cause is worse than none.
- Approval state. Every diff needs “this is fine, it is the new baseline” as one action, or the baseline rots and every subsequent run compares against something stale.
- Lazy content. Full-page captures of a site with lazy-loaded images need scrolling and settling before the shot, or you diff a loading state against a loaded one.
None of that is hard. All of it is fiddly, and it is where every weekend version of this dies — usually at “I stopped reading the alerts”.
3. Rough comparison
| CI tools (Percy, Chromatic, Applitools) | Live-site monitoring | |
|---|---|---|
| Trigger | Commit, pull request | Schedule, or publish webhook |
| Compares | Branch vs. main | Same URL over time |
| Needs | CI, often Storybook | A URL |
| Catches | Regressions before merge | Changes after publish, including other people's |
| Priced like | Engineering infrastructure | A monitor |
They are not competitors. If you have CI, use a CI tool — it catches things earlier, which is strictly better. Live-site monitoring is for changes that never pass through a pipeline at all, which on a client site is most of them.
4. The hosted version
Pixelsitter is this shape: add a site by URL, it crawls the pages you
pick, captures at 1440, 768 and 390, and diffs each against the baseline you approved.
Runs on a schedule or on Webflow's site_publish webhook. Ignore zones,
thresholds, one-click baseline approval, email and Slack alerts, and a client-facing PDF
report on the agency tiers.
No CI, no API keys, free for one site and five pages. It also compares a page against a Figma frame rather than against last week's capture, which is a different question — “was it ever built right” instead of “did it change” — and is covered in Figma to Webflow.
If you would rather build it, the list above is the honest scope. The capture is the afternoon; the noise is the year.
Related
A visual check with no pipeline to wire it into.
Add a URL. It captures, diffs against what you approved, and emails you only when something moved.
No credit card. One site free, for as long as you want it.