SendLint is an autonomous QA agent for email. It reads your copy deck and your approved creative, then verifies copy, links, accessibility, rendering, spam risk, and brand voice in one pass. When a round is clean, it issues a certificate anyone can verify.

The stakes
the wrong rate
A promo rate that doesn't match the approved deck goes to every inbox on the list. There is no hotfix for a sent email.
the missing legal line
A disclosure that exists in the deck and not in the email is a compliance finding, not a typo.
the quietly wrong link
A CTA labeled correctly but pointing at the wrong page kills the campaign silently. Nobody notices until the numbers are wrong.
None of these are hypothetical. All of them ship past human checklists.
Checks
Every campaign you send unchecked is a bet. SendLint learns the client’s standards once, then runs creative, copy, links, accessibility, rendering, spam, and brand voice in one pass, so it stops being one.
00client creation
Checks are only as strict as the standards behind them. Create the client once: brand palette and fonts, email width, capitalization and superscript rules, their numbered common-issue library, product codes and reward types. Every analysis after that enforces that client's standards by name, and every dismissal teaches SendLint which rules that client doesn't care about.
Import from Brand Guide
Upload the client’s email design guide (PDF). AI reads the spec pages and proposes brand rules with page-level citations. You review every field before anything is applied, and nothing persists until you Save.
Import from Sample Email
No design guide? Paste an approved, on-brand email and SendLint reads its fonts, sizes, weights, and colors directly from the code. If the client later provides a design guide, prefer importing that: an authored spec outranks rules inferred from one example.
What SendLint found
41 rules on file · 32-issue library · 2 rules learned
01creative comparison
The email your dev built and the creative your client approved drift in small ways: spacing, a cropped image, a missing module. SendLint cuts the built email into its real blocks and checks each one against the approved PDF or XD, block by block, verdict by verdict.
What SendLint found
1 of 5 blocks differs · example module, ~34%
02copy vs deck alignment
One dropped word in approved copy ships to the full list, permanently. SendLint reads the copy deck and verifies the email against it line by line, both directions, in English and French. Dynamic content is first-class: deck placeholders like <First name> or <MMMM DD, YYYY> resolve against your test values, so personalization verifies exactly instead of false-flagging.
What SendLint found
27 of 30 deck lines found · 1 changed · 2 missing
03link validation
A wrong link fails silently: attribution dies, the redemption page 404s, and the report looks fine until it doesn't. Every URL is crawled, tracking wrappers are followed to the page they actually land on, and that destination is checked against the deck. Even a link behind a login wall verifies: SendLint reads the wall's redirect target and matches it, so a locked page never false-flags. EN emails get EN links, FR emails get FR links, and phone numbers must be tap-to-call.
What SendLint found
18 of 18 resolve · 1 link in the wrong language
04accessibility wcag 2.1
WCAG 2.1 AA is the standard regulators and procurement ask about by name. Contrast, alt text, heading hierarchy, font sizes, table roles, and screen reader compatibility, scanned on every pass. Color-blind vision is simulated too: a CTA that only loses contrast under deuteranopia still gets flagged, with the before and after ratios shown.
What SendLint found
18 of 24 pass · 6 flagged for review
05real outlook rendering
What renders in your browser is not what lands in Outlook, because desktop Outlook still renders email through Microsoft Word's engine. SendLint runs your email through actual desktop Outlook on its own render fleet: a real Word-engine screenshot, not a simulation. Chromium captures at every viewport, round-over-round pixel diffs, and the Outlook-risk overlay ride alongside.
What SendLint found
0.4% of pixels changed since round 1 · 1 white seam in Outlook
06spam & deliverability
A spam-folder campaign is a campaign that didn't happen. Content scoring, image-to-text ratio, blocklist checks, and authentication readiness before the send, not after. The thresholds are the client's, not ours: custom trigger phrases, caps ratios, and image-to-text floors are all per-brand settings.
What SendLint found
risk 0 of 100 · 0 trigger hits on the client's list
07brand voice ai
Off-voice copy erodes a brand one send at a time. Upload 3 to 5 reference emails; every new email is scored on tone, vocabulary, structure, and formality against how the brand actually writes, not against a generic idea of good copy. Drift comes back specific: the word, the sentence, and which reference it contradicts.
What SendLint found
on-voice · 1 word to review
the full sweep
The rows above are the headlines. Underneath sit 100+ named checks. Every check has a name, a verdict, and the evidence line that proves it. Here is a real bilingual campaign run, and a few of the lines it produced:
rendering 4 · metadata 7 · accessibility 24 · images 8 · links 12 · copy vs deck 32 · brand 13 · spam 5

A legal disclosure that never made it from the deck into the email, caught as one red row. That is the class of miss this exists for.
Paste the HTML. If SendLint finds nothing, send with confidence. If it finds something, you just avoided the inbox. No account, no card.
The math
One email, checked by hand (typical)
Then multiply (your campaign)
one year, by hand
~380 hrs
Your numbers will differ. The multiplication will not. A SendLint pass takes minutes.
Workflow
Paste the email HTML. Attach the copy deck and the approved creative. Pick the client whose rules apply.
SendLint runs 100+ checks in one pass: copy, creative, links, accessibility, rendering, spam, brand. No checklist. No human pass.
Review findings, hand your dev a brief, track fixes round over round. Sign off, and the approval mints a certificate anyone can verify.
Proof
When a round passes the client’s compliance bar, SendLint freezes it: a certificate that binds the approved emails to their exact bytes. Anyone holding the certificate id can open the public verify page, paste the final HTML, and confirm byte-for-byte that what’s being sent is what was approved. Wire the pre-send API gate into your pipeline and a changed byte blocks the send. Approvals, requests, and overrides land in Slack as they happen.
Compliance-strict clients can require two-party approval: one seat requests, a Reviewer approves. Overrides are permitted but loud: stamped on the certificate, posted to Slack, printed in the compliance PDF.
Where this goes
Every marketing asset ships the same way: a human opens a checklist and eyeballs it. SendLint replaces that step with an agent that reads the source of truth, inspects the output, and flags everything that drifted. Email first, because email is irreversible. You can fix a landing page after launch. You cannot unsend two million emails.
Pricing
One plan with everything you need. Enterprise options for teams that need more.
Pro · for teams shipping production emails
$9,588/yr (save $2,268 vs monthly)
Enterprise · for teams with advanced needs
Tailored to your organization
Built by QA analysts tired of checking emails by hand.
Every check exists because we've watched one slip through and cause a real issue in production.