Skip to main content
Emailens
Open-source core, runs in your editor, CLI, and CI

You write the email.
21 inbox clients rewrite it.

Find what breaks in Gmail, Outlook, and Apple Mail.

30 seconds to your first preview

Simulated by the rendering linter. No account. Five clients, including Outlook. A free account opens all 21 and keeps the report.

Live Demo

The gap between your design and the inbox

Left: what you built. Right: what your users see. Switch clients to compare.

spoiler: it's Outlook

Showing 7 of 21 supported clients, covering 95%+ of email opens.

Your design
What Gmail renders
1 errors1 warnings
What the report saysfound by reading the source, not the rendernone of the 3 reach Gmail
:43
<v:rect> has an invalid height: "height:px" is missing its number.vml-invalid-dimensionOutlook Classic only · Gmail never reaches it
:50
<v:roundrect> is nested inside <v:rect>. Outlook does not support nesting one VML shape inside another.vml-nested-shapeOutlook Classic only · Gmail never reaches it
:50
<v:roundrect> has arcsize="120%", outside the valid 0%–100% range.vml-arcsize-rangeOutlook Classic only · Gmail never reaches it
gmail-web does not load external stylesheets. Inline all CSS directly in the HTML.<link>
gmail-web strips "gap" from styles. Use padding/margin on child elements instead of gap.gap

Works where you build

Lint locally. Test in CI. Let Claude and Cursor fix email rendering traps.

AI Builder

Describe the email. AI builds it, then makes it render.

Not just another generator. Emailens writes the code in your framework, then repairs its own output across 21 clients until it actually scores, catching what other AI tools ship broken.

self-heals across 21 clients in ~45 seconds

AI Builder

From a sentence to a shippable email

Describe it in plain English. Emailens generates React Email, MJML, Maizzle, or HTML, self-heals across every client, and you refine it in chat, then send it straight to your dashboard.

Generates in React Email, MJML, Maizzle, or HTML
Self-heals across 21 clients until the score clears
Refine in chat, target a specific region to change
Send any build to your dashboard in one click
AI Fix: turns compatibility warnings into a ready patch
Match a design: drop in a screenshot, get code that matches

AI Fix is free to try (3 fixes). The AI Builder is a taste on Dev (3 builds/mo) and included on Pro (30/day).

How it fits

One step in the workflow you already have

Emailens doesn't replace React Email, MJML, or Maizzle. It's the check between building and shipping.

01

Build

Write your email in React Email, MJML, Maizzle, or raw HTML. Whatever fits your project.

02

Preview

Emailens checks your email against 21 clients in parallel, in your editor, CLI, or browser.

03

Ship

Fix issues with framework-native snippets, run CI checks, and ship emails that look right everywhere.

zero context switching · fits right into your existing CI/CD

Beyond rendering

One preview catches more than CSS bugs

Every preview also runs spam analysis, link validation, accessibility checking, image optimization, content-overflow detection, and visual-bug checks, included on all plans.

all in a single 200ms pass

Spam scoring

Heuristic content analysis: flags excessive caps, missing unsubscribe links, image-heavy layouts, CAN-SPAM address checks, and 15+ other signals.

Link validation

Catches broken hrefs, insecure HTTP links, empty mailto addresses, broken anchors, and generic "click here" anchor text.

Accessibility audit

Checks color contrast, missing alt text, heading hierarchy, lang attributes, and table semantics.

Image analysis

Flags missing dimensions, oversized files, tracking pixels without alt text, and images that break layouts.

Domain authentication

Validates SPF, DKIM, DMARC, MX, and BIMI records so your emails actually reach the inbox, not the spam folder.

Inbox preview

Analyzes subject lines and preheader text with per-client truncation limits. Detects Gmail clipping before your readers do.

Content overflow

Catches fixed-width tables and unbreakable strings that blow past the 600px email boundary and force horizontal scroll on mobile.

Visual bugs

Flags gradients with no background-color fallback and custom fonts with no web-safe stack, before Outlook renders them blank.

Outlook VML

Reads the VML inside your mso conditional comments: nested shapes that silently blank every button after them, unbalanced ghost tables, out-of-range arcsize and invalid dimensions.

Client targeting

Knows Gmail, MSO and wrap-body targeting, so scoped CSS does not tank the wrong client's score. Deprecated hacks get flagged; live ones do not count as css-hack failures.

Dark mode contrast

Re-checks every colour pair after a client inverts the email, and again below the mobile breakpoint. Contrast that passes in the light theme routinely fails in the dark one.

Design drift

Reads back the palette an email actually uses and flags near-identical colours and properties carrying more distinct values than a design system would.

Template variables

Catches unresolved merge tags: Handlebars {{var}}, Mailchimp *|TAG|*, AMPscript %%tag%%, left in text or href/src/alt attributes before they ship as raw placeholders.

Open Source

The engine is open source

The core packages that power Emailens are published on npm and open on GitHub. Use them standalone or through the web app.

@emailens/engine

The rendering compatibility engine. Parses HTML, evaluates CSS against 21 client support matrices, scores compatibility, and treats client-targeting scopes as scoped CSS rather than global failure.

@emailens/mcp

MCP server with 9 tools: analyze, preview, audit, fix, diff, deliverability, screenshots, and sharing. Works with Claude, Cursor, or any MCP-compatible AI assistant.

@emailens/cli

Preview, analyze, and lint emails from the terminal. CI/CD-friendly lint command with structured exit codes. Pipe HTML in, get a compatibility report out.

New

Figma plugin

Design in Figma? Preview how your email renders in 21 clients, directly inside Figma. Select a frame, click preview, get per-client scores and CSS warnings.

21 email clients, light + dark mode
Per-client compatibility scores (0-100)
CSS warnings with client references
Copy email-safe HTML to clipboard
Share preview links with your team
Works offline: CSS analysis without network
MCP Server

Works with your AI assistant

Drop Emailens into Claude Desktop, Cursor, or any MCP-compatible tool. Analyze emails, fix compatibility issues, capture screenshots, all without leaving your editor.

claude mcp add emailens
|  or
npx -y @emailens/mcp
runs 100% locally on your machine
Analyze CSS compatibility across 21 clients
Generate fix prompts for Outlook, Gmail, etc.
Compare before/after with diff scoring
Check SPF, DKIM, DMARC deliverability
Capture high-fidelity previews (with API key)
Create shareable preview links

Pricing

Every email client, on every plan. Starting at $9 a month.

Most email testing tools bill per client tested. Emailens doesn’t. No per-seat fees, no per-client billing, cancel anytime.

What the rendering-QA half costs elsewhere

~$500/mo
Litmus
Enterprise commitment
$99+/mo
Mailgun Inspect (EoA)
Capped with $0.15 overages
$78+/mo
Parcel (w/ Previews)
$29 seat + $49/500 previews
$9/mo
Emailens
~50x less than Litmus

Approximate list prices, last checked September 2026. Litmus requires annual enterprise commits; Email on Acid has migrated to Mailgun Inspect ($0.15/preview overages); Parcel prices inbox screenshots as an add-on. Read in-depth competitor comparisons →

Emailens replaces slow, expensive VM screenshot queues with an instant simulation engine tested against Can I Email and real-device benchmarks.

Two months free on Dev, two and a half on Pro when billed yearly

Free

The whole engine, 30 simulated previews a day

$0forever

  • 30 simulated previews per day
  • All 21 email clients
  • CSS compatibility report
  • Dark mode preview
  • 1 monitored domain · DNS check
  • 7-day audit history
  • 3 AI Fixes to try
  • MCP server · 7 local tools
Start Free

Dev

Most popular

Local developer toolkit: 100 simulated previews/day, 1 key, CLI

$9/mo

  • 100 simulated previews per day
  • Full API access · 1 key
  • 3 monitored domains · SPF, DKIM, DMARC
  • 30-day pre-flight audit history
  • Share links & Visual Diff
  • HTML size & 102KB clipping checks
  • MCP screenshots + sharing
  • AI Fix · 10/mo + Builder · 3 builds/mo
Start Building

Pro

Recommended

Production gate & CI/CD: zero broken emails deployed

$19/mo

  • Pre-send gate · spam heuristics & regressions
  • CI/CD integration & GitHub Action
  • 10 monitored domains · drift alerts
  • 1-year audit history & compliance archive
  • Unlimited simulated previews · all 21 clients
  • Full API access · 10 keys
  • AI Fix + AI Builder · 30 builds/day
  • MCP unlimited screenshots
  • Everything in Dev
Go Pro

Not the same product. Litmus and Mailgun Inspect bundle marketing analytics and delivery infrastructure with per-preview limits; Parcel is an in-browser code editor. Emailens delivers developer-first rendering QA across 21 clients via CLI, CI/CD, and MCP without campaign tracking bloat.

Cancel anytime. Upgrade or downgrade in one click.

no hidden limits · 30-day money-back guarantee

AnthropicZero AI TrainingAnthropic Commercial Terms
PolarPCI-DSS Level 1Polar.sh Merchant of Record
CloudflareTLS 1.3 & Edge SSLCloudflare Encrypted Transit
European Union (GDPR)EU GDPR CompliantSelf-Serve DPA & Export

Team plan

Not built yet. If your team needs seats, a shared workspace and unlimited API and CI/CD, tell us what that looks like and we’ll size it with you.

Talk to us

Daily game

Think you know what Outlook breaks?

Renderle deals five CSS features a day. Call whether each one renders in Gmail, Outlook, Apple Mail, Yahoo and Samsung Mail, then share the grid. Built on the same support data the linter runs on, so a wrong guess is a rendering trap you now know about.

Play today's puzzle

The email CSS thing I fixed this week

Every other week: one real rendering bug, the root cause, and a working fix. Code included. Usually something Outlook does silently.