Built for developers who ship faster than they can check
What each check does
The names the run picker lists. The tester never pays, never types a password, and never deletes anything.
Six that spend nothing
Speed & errors measures Core Web Vitals, links, console errors, accessibility and the CTAs that did nothing.
Re-checks turns a finding you confirm into a standing check that has to go red once first.
Report assembles coverage, what changed and the next three moves.
Assistant readiness checks the product works for AI agents acting for people: named controls, keyboard reach, machine-readable identity.
Round trips types a marked value, saves, comes back and reads it out. A save that saves nothing is arithmetic.
Environment diff captures the same pages on staging and production, then compares them. Pixels and words, measured, not eyeballed.
No API keyTwo that read and reason
Site review reads a page like a first visit: five-second clarity, proof, trust, and whether it looks finished.
Test drive sends up to six testers, drawn from 10,000 people, thinking aloud past the sign-in wall.
Runs on your model keyAll of it, one verdict
Checkup runs the free checks in one pass (Environment diff aside, which needs two URLs).
Full check runs Speed & errors, Site review, Re-checks and Report in one pass, then opens the console on the result.
Test drive stays its own decision, because six testers is a different size of run.
Needs a keyEvery surface, judged the way a stranger judges it
Site review opens each page on a desktop and a phone, and judges only what it can see.
- 01 Surfaces
- Each page you list, opened in a real browser rather than fetched as text.
- 02 Widths
- The same page twice: once at 1440px on a desktop, once at 390px on a phone.
- 03 Questions
- Seven questions, asked of every surface in one pass. All seven are listed below.
- 04 Weights
- Nine dimensions, each scored out of ten. Their weights, below, make the one number.
- 05 Findings
- What it found, and under each one a prompt you can paste straight at your agent.
03The seven questions, in full
- what a stranger would say this is, and who it is for
- whether the promise is a concrete outcome or polished vagueness
- whether the main button names what happens next
- whether the page shows the product working, or only says so
- whether it is credible enough to hand real data to
- whether the phone version feels finished, or merely shrunk
- whether anything answers “why not the tool I already use”
04The nine weights that make the number
- Value clarity15
- Trust & privacy15
- Core flows work15
- Proof & demo10
- First run10
- Mobile polish10
- Pricing clarity10
- Differentiation10
- Conversion path5
Each is scored out of ten. The weight is its share of the result, out of a hundred.
Strangers drawn from 10,000 people, thinking out loud
Each one lands with no instructions, and stops when it has seen everything or gives up.
Sees what a visitor sees.
A screenshot of the page, and the controls really on it. An invented button is refused.
Says what it is thinking.
In character, before it moves, so you get the reason and not just the click.
Picks its own next move.
Up to thirty steps, and it stops early once it stops reaching anywhere new.
gave upNothing here tells me what to do next, and I have spent five steps looking. A first visit that cannot find the product is the finding.
Everything it looks for before a model is involved
Speed & errors is one name for 39 separate detectors. None of them calls a model.
The visitor cannot get through9
- a form that cannot be submitted
- a button that does nothing
- a link that leads nowhere
- no route to signing up
- no route to paying
- no way to reach a human
- a screen stuck loading
- focus that cannot be tabbed out
- a dialog Escape will not close
The product says something untrue6
- a save that did not save
- a confirmation that got it wrong
- a silent failure to load data
- an error page on a normal path
- a stack trace shown to a visitor
- a page that loses its content on reload
They cannot see it, tap it, or read it15
- an image with no alt text
- a form field with no label
- a control with no accessible name
- a tap target too small to hit
- content wider than the screen
- no viewport set for phones
- a page with no title
- a page with no heading
- no page language set
- one id used twice
- text too low-contrast to read
- a heading that skips a level
- content outside any page landmark
- a clickable inside a clickable
- a control unreachable at phone width
Something is exposed or broken9
- a password sent over plain http
- a server key shipped in the page
- a session cookie missing its flags
- security headers never sent
- an image that failed to load
- an image larger than its slot
- a file that never arrives
- a JavaScript error thrown on load
- a link preview that renders blank
Beside them the run executes the full axe-core 4.12.1 ruleset from Deque.
The same run measures LCP, INP, CLS and TTFB on every surface it opens, at two widths.
Confirmed bugs become standing checks
A check is minted while the bug is still there, so it has failed once before you trust it.
Minted while the bug is still there.
You confirm a finding a browser can re-drive, and the check is written from the run that caught it.
You fix it, and the check turns over.
The same steps run again and no longer reproduce. The finding closes on the browser’s answer, not on yours.
And if it comes back, so does the finding.
An armed check that fails reopens the original at critical rather than filing a second one beside it.
Pick a check and leave it
Full check runs the main ones in one pass, on the pages you name.
Human judgement meets agentic evidence
Confirming is the only route to critical. Closing happens on the browser’s answer, not on yours.