Broken / HTTP links
Empty href, hash, javascript:, relative paths, leftover {{ tokens }}, example.com.
Chrome extension · local scan · not in the Web Store yet
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.
Nothing runs in the background. If you never click Scan, it never looks at the page.
Empty href, hash, javascript:, relative paths, leftover {{ tokens }}, example.com.
Missing, empty, or “image” as alt. HTTP or relative src that will break in the inbox.
Tables and images past the 600px canvas, nowrap copy that sideways-scrolls on phones.
Grey-on-white and dark-on-dark body copy using a WCAG-style check.
No preference-center or unsubscribe link — the CAN-SPAM miss you only notice after send.
Lorem ipsum, [Insert headline], TODO, empty headings, “Click here.”
| 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 |
chrome://extensions and turn on
Developer mode (top right).
extension/
folder (the one that contains manifest.json). Pin QA Lens from the puzzle menu.
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.
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.
Not yet. Load it unpacked. A listing draft exists for later; do not submit this MVP.
No. It looks at the preview tab, the same way you do.
No. Reports live in the popup or on your clipboard if you copy them. They are not written to disk and not uploaded.
Open the preview in its own tab or export HTML and scan that. Cross-origin iframes cannot be read — that is a browser rule.
$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.
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.