Learn · Comparison
Verification vs linting vs regression
Three adjacent practices, three different questions.
Design linting, visual regression, and design verification are often grouped together as “design quality tooling.” They answer different questions, take different inputs, and fail in different places. This article is the side-by-side.
The three questions
Design linting
Question: Does the source use the tokens?
Input: Source files — CSS, TS, JSX
Output: Warnings, fixes, inline suggestions
Scope: Token misuse, magic numbers, raw hex
Where it fails alone: It cannot see what shipped. A linter that passes in CI does not protect the visitor who receives a different CSS bundle than the one linted.
Visual regression
Question: Did the pixels change?
Input: Screenshots — before and after
Output: Pixel diffs, masked regions, flake flags
Scope: Layout drift, unexpected reflow, removed elements
Where it fails alone: It needs a baseline to diff against. New work has no baseline, and a pixel-perfect diff can mask a contract violation that happens to look the same.
Design verification
Question: Does the live site keep the contract?
Input: A live URL — fetched the way a visitor fetches it
Output: A letter grade and per-check findings
Scope: Tokens, rules, behavior, and verification — all four contract layers
Where it fails alone: It cannot inspect what it cannot fetch. Pages behind auth, paywalls, or bot challenges are scored on what the verifier can receive.
Why they layer
The argument
Linting catches token drift at authoring time. Regression catches pixel drift at shipping time. Verification catches contract drift at visitor time. Each one fails where the others succeed, which is why mature teams run all three — and why verification is the only one that can score a site you do not control.
Linting and regression both require access to the source. A visitor, a reviewer, a procurement team, or a design system author evaluating someone else’s site has neither. Verification is the only practice in this set that takes a URL and returns a grade.