What you have to do

Send us your web address. That's the whole ask. Everything else is on us for the next two weeks.

We measure the site you have now, and you keep the result.

14 checks · 2 widths · 2 weeks · $2,500

Most first meetings with an agency are a sales call with a better name. This isn't one. It's a paid piece of work with a deliverable attached, and if you never speak to us again you still have it.

What you get

  1. The run.

    14 automated checks against your live site, at desktop and phone width, with every finding located: the element, what was measured, and what the number should have been. Not a score out of 100. A score is a number you can't act on.

  2. The research.

    Your site read, your photos opened one at a time, your reviews read, and your three closest competitors run through the same 14 checks. Your own sentences pulled out, because the headline should be yours and not ours.

  3. Where the money leaks.

    The places you're losing inquiries, with the arithmetic shown, using your traffic and your average order value. If you can't give us those two numbers, we say so and leave it blank. An estimate built on our guesses about your business is worth nothing to you.

  4. One screen.

    A single page of your site, redesigned the way we would actually build it — not a deck of mockups. And one sentence saying what makes your site different from your competitors'. If we can't write that sentence, we'll tell you, and that's a finding too.

  5. The plan.

    What to fix now, what can wait, and what not to touch. Including the things you should fix yourself without paying anyone.

What a failing run looks like

We keep a file that is permanently broken. Every defect in it is a mistake that was made for real and paid for once. It exists so that a check that goes quiet gets caught the same day, and it is never repaired.

Here is the most recent run against it, unedited.

Verification run against a permanently broken test file, 2026-08-25 22:37 UTC: 18 of 18 readings red, 42 findings, exit code 1.
CheckWhat it measuresResultFindingsTime
G01ScrollFAIL1 finding3 ms
G02Empty bandsFAIL1 finding565 ms
G03Dead columnsFAIL1 finding15 ms
G04Invisible contentFAIL3 findings11 ms
G05JavaScript offFAIL1 finding203 ms
G06Console errorsFAIL4 findings0 ms
G07Contrast and accessibilityFAIL7 findings7 ms
G08Links and anchorsFAIL2 findings6 ms
G09Tappable contactFAIL2 findings4 ms
G10OverlaysFAIL1 finding265 ms
G11Assets and metadataFAIL3 findings3 ms
G12Language and voiceFAIL3 findings6 ms
G13Hover and focus statesFAIL5 findings63 ms
G14Dead tokensFAIL2 findings6 ms
G01mScroll (phone, 390px)FAIL1 finding2 ms
G02mEmpty bands (phone, 390px)FAIL1 finding514 ms
G04mInvisible content (phone, 390px)FAIL3 findings13 ms
G10mOverlays (phone, 390px)FAIL1 finding260 ms
VerdictFAIL18 of 18 red · 42 findings · exit code 1

packages/qa-gates/test/fixtures/broken.html · 2026-08-25 22:37 UTC

16 of those 42 are blockers. One red is enough to stop a delivery, which is the only reason any of this works.

There's a button on the page. In a screenshot it looks like a button. In a browser there is no readable text on it at all.

1.00:1 · minimum 4.5:1

Turn JavaScript off — a blocker, an old corporate browser, a bad connection — and a quarter of the words on the page are served invisible, waiting for a script that isn't coming.

6 of 23 text elements hidden

Your link gets shared into WhatsApp with no image, because the share image is set with a relative path and the two aren't the same thing.

og:image = /images/og.png

What we check

G01
The page scrolls normally with a mouse wheel
G02
No empty bands, with animations running
G03
No dead columns next to full ones
G04
Nothing invisible to a visitor
G05
The page works with JavaScript off
G06
No errors in the browser console
G07
Contrast, keyboard access and alt text
G08
Every link and menu anchor goes somewhere
G09
Phone and email are tappable
G10
Nothing fixed sitting on top of text
G11
Images, favicon and share previews
G12
Language and voice fit the market
G13
Hover and focus states stay legible
G14
Every design token resolves

4 of them — scroll, empty bands, invisible content and overlays — run twice, once at 1440px and once at 390px, because the defects they catch usually only exist at one of the two widths. That's 18 readings per page.

What this doesn't cover

These checks measure what can be measured. They don't tell you whether this is the right site for the business, whether the photography is any good, or whether the offer makes sense to the person reading it.

That's the part a person does, and it's the part we'd argue is worth more. We say it here because a report that doesn't state its own limits is a sales document wearing a lab coat.

"Couldn't AI do this?" We use AI too — it's the factory. But a factory doesn't decide what to make. A generator has no reason to tell you that what it just produced is broken. We charge for telling you.

What it costs

$2,500 · paid up front

Credited in full against a project if you go ahead within 30 days. So if you hire us, the audit was free; and if you don't, you still have the report.

We charge for it because the research is the expensive part, and giving that away attracts people who were never going to buy anything.

Ask for the audit

Email us your web address

Send the address of your site and one line about what's making you look at this now. That's enough to start.

A person replies. There's no sequence behind this — we haven't built one. If the answer is that you don't need us, that's the reply you'll get.