Chrome extension · local scan · not in the Web Store yet

Catch the embarrassing email bugs before Klaviyo hits send.

QA Lens is a one-click preflight for the preview you already have open. It flags broken links, missing alt text, mobile overflow, low-contrast type, leftover lorem, and a missing unsubscribe — on your machine. The campaign HTML never leaves the tab.

For people who already live in Klaviyo and Shopify: freelancers, small agencies, and in-house lifecycle folks who QA a preview at 11pm and still miss a # link.

How it works

  1. 1. Open the preview A Klaviyo campaign preview, a Shopify notification, or an HTML export in its own tab.
  2. 2. Click Scan active email The extension reads that tab’s rendered DOM. It does not edit the campaign and does not call the Klaviyo API.
  3. 3. Fix from the report Errors, warnings, and info — each with a location and a plain-English fix. Copy Markdown or JSON into Slack or a client recap.

Nothing runs in the background. If you never click Scan, it never looks at the page.

What it catches

Broken / HTTP links

Empty href, hash, javascript:, relative paths, leftover {{ tokens }}, example.com.

Image alt

Missing, empty, or “image” as alt. HTTP or relative src that will break in the inbox.

Overflow

Tables and images past the 600px canvas, nowrap copy that sideways-scrolls on phones.

Contrast

Grey-on-white and dark-on-dark body copy using a WCAG-style check.

Unsubscribe

No preference-center or unsubscribe link — the CAN-SPAM miss you only notice after send.

Placeholder copy

Lorem ipsum, [Insert headline], TODO, empty headings, “Click here.”

Free vs Pro

Free Pro coming soon
Price $0 $5/month or $29 lifetime
Scans 5 per day Unlimited
MVP rules Yes Yes
Custom rules, saved reports, agency branding Planned
Payment Waitlist — no card form here

Load unpacked (three steps)

  1. 1. Open Chrome extensions In the address bar go to chrome://extensions and turn on Developer mode (top right).
  2. 2. Load the folder Click Load unpacked and choose the repo’s extension/ folder (the one that contains manifest.json). Pin QA Lens from the puzzle menu.
  3. 3. Open a fixture tab and Scan Serve fixtures with npm run serve, open /fixtures/08-kitchen-sink.html as a normal tab, click the extension icon, then Scan active email.

Prefer http fixtures over file://. Chrome blocks local files unless you enable “Allow access to file URLs” on the extension details page.

Privacy

Scan is local. We do not upload email HTML, subscriber data, or your report. The extension stores a daily counter and an optional Pro flag on the device — that’s it. No remote scripts. No analytics. Permissions: activeTab, scripting, storage.

FAQ

Is this on the Chrome Web Store?

Not yet. Load it unpacked. A listing draft exists for later; do not submit this MVP.

Does it need my Klaviyo API key?

No. It looks at the preview tab, the same way you do.

Do you store customer email content?

No. Reports live in the popup or on your clipboard if you copy them. They are not written to disk and not uploaded.

Scan picked up the Klaviyo editor instead of the email

Open the preview in its own tab or export HTML and scan that. Cross-origin iframes cannot be read — that is a browser rule.

When can I pay for Pro?

$5/month or $29 lifetime is the intended price. Checkout is not live. Join the waitlist or reply to outreach. Early access during the 14-day experiment is a paid commitment, invoiced manually.

Pro waitlist

Billing is not connected. This form does not send your email anywhere — it stays in this browser so you can copy a waitlist note. Use it while hosting locally; swap in a real form backend if you put this page on Pages later.