Visual QA Kit

Catch the visual bug in CI — before your client catches it in production

Hosted visual testing starts at $100–199 every month (Percy $199/10k screenshots, Chromatic $179/35k — checked Sep 2026). This kit runs the whole pipeline on your machine and your CI: deterministic Playwright capture, a pixel diff engine with zero npm dependencies, a baseline manager, and a report you can hand straight to a client. One payment of ฿1,490 — then nothing.

Get the kit — ฿1,490
One-time payment · ≈ US$42 · free updates for v1.x · instant download

What's inside the kit

One zip: a capture step, a diff engine, a baseline manager, a CI workflow and a report viewer — the diff core runs on plain Node 18+ with zero npm dependencies; only capture needs Playwright.

Capture

Playwright screenshots with anti-flaky defaults

Locked viewport and device scale, animations disabled, webfonts awaited, network idle, caret hidden. The twelve classic causes of flaky shots are neutralized in one reusable capture step.

Zero npm deps

A pixel diff engine in plain Node

PNG decode, per-pixel comparison with a per-channel tolerance, and red-overlay diff images — all standard-library Node 18+. Nothing to install, nothing to break, nothing phoning home.

Baselines in git

A baseline manager your team understands

Approved screenshots live in your repo. One command — run.mjs --update — accepts intentional changes, and git history shows exactly when and why the UI changed.

CI-ready

GitHub Actions workflow — official actions only

Every pull request gets a diff run. Failures upload the report and diff images as artifacts and post one self-updating summary comment on the PR. No third-party actions touch your repo.

Report viewer

One self-contained HTML report

Expected, actual and red-overlay diff side by side, with images embedded as data URIs. Attach it to an email, drop it in an artifact, or print it to PDF for a client.

The knowledge

Playbook + agency report + RTL + monorepo

The 12 causes of flaky visual tests with exact fixes, a client-facing QA report template that sells the retainer, an Arabic/Hebrew RTL checklist, and a pnpm + turborepo layout for multi-app teams.

Honest by design

It detects; it doesn't fix. The kit tells you exactly which pixels changed, on which page, since which baseline. Deciding whether a change is a bug is still a human's job — the kit makes that decision take seconds instead of an afternoon of squinting at two browser windows.

You run it; nothing is hosted. No account on our side, no dashboard we can switch off, no per-screenshot billing. If your CI runs, your visual QA runs. The free tier of GitHub Actions is enough for most teams — the included workflow uses only official actions.

Free alternatives exist — and they're the point. Playwright's built-in screenshot comparison is excellent at comparing two images. This kit is the unglamorous 80% around it: stable capture defaults, a baseline workflow your whole team follows, CI wiring, reports a client can read, and the playbook that ends flaky-red whack-a-mole.

How it works

Three steps from unzip to a visual gate on every pull request.

1

Point the config at your pages

One visual.config.json: pages, viewport, tolerances. Start your app, run a single command to record the approved screenshots as baselines, and commit them to git.

2

Let CI do the watching

Copy the included workflow into .github/workflows. Every pull request is screenshotted and compared against the baselines — failures come with the report and diff images attached.

3

Review, accept, ship

Open the report: expected, actual, red-overlay diff. Intentional change? One command refreshes the baselines — and the diff images become a changelog your client can actually read.

One price. You own it.

No monthly plan, no per-screenshot fee, no subscription.

฿1,490
one-time payment

≈ US$42

  • Free updates for v1.x
  • Instant download after checkout
  • Single-team commercial license — unlimited projects
  • Zero lock-in — plain Node + Playwright

Secure checkout via Stripe · card payments · 14-day full refund

Frequently asked questions

What does the license cover?

A single-team commercial license: one buyer (a person or a company) runs the kit on unlimited projects of their own, including client work. The reports, diff images and CI configuration you produce are yours. Redistributing or reselling the kit files themselves is not allowed — each team needs its own license.

Do I get updates?

Yes — every v1.x update (new capture defaults, report improvements, CI recipes) is free. Re-download any time from your download page with your email and password. If a v2.0 ever ships, existing buyers get a clear upgrade path — never a surprise paywall.

What is the refund policy?

If the kit doesn't fit how you work, email [email protected] within 14 days of purchase and we'll refund you in full — the zip is yours to keep or delete. One refund per purchase; we only ask for optional feedback.

What do I need to install?

Node 18+ and — for the capture step only — Playwright (npm i playwright && npx playwright install chromium). The diff engine, baseline manager, report viewer and PR-comment bot are plain Node standard library: zero npm dependencies. CI runs on free GitHub-hosted runners.

Aren't there free alternatives?

Yes — Playwright's built-in screenshot assertions are excellent, and we'd never talk you out of them. This kit is the production layer around them: stable capture defaults, baseline management, CI wiring, client-ready reports and the anti-flaky playbook. Percy and Chromatic sell that wrapper as a $179–199/month subscription; here it's one payment.

Will my visual tests be flaky?

Flakiness comes from twelve known causes — webfont swap, animations, timezone drift, lazy-loading and friends. The capture step defaults to the fix for all twelve, and the included playbook explains each cause so you can diagnose any stragglers in minutes instead of days.

The next visual bug gets caught in CI — not by your client

฿1,490 one-time · ≈ US$42 · free updates v1.x · instant download

Get the Visual QA Kit — ฿1,490