See your email before you send it.

Render HTML emails across real email clients, capture pixel-accurate screenshots, and get structured rendering analysis back — in one API call.

Paste your HTML

…or drop a .eml file onto the box, or .

Coverage

Live clients, not approximations.

We render in the actual email client, never an engine approximation. Gmail is live today — the rest are landing soon.

Gmail (Web)
Live

The strictest client. Renders in a live, logged-in Gmail session — strips flexbox, grid, position, box-shadow, and animations.

Outlook 365 (Web)
Coming soon

Real Outlook web rendering, with its own quirks around position, animations, and transforms.

Apple Mail / iOS
Coming soon

Rendered on a real iOS Simulator over an iPhone/iPad device profile. WebKit engine, true-to-device pixel scale.

Yahoo Mail
Coming soon

Real Yahoo Mail rendering for cross-client checks against its CSS handling.

Thunderbird
Coming soon

The actual Mozilla Thunderbird desktop client, driven headlessly and screenshotted.

+ Variants
Email us →

Dark mode, images-disabled, and custom viewport widths. Want a specific client or setup sooner? Get in touch.

The problem

Email is the hardest thing to render right.

Every client strips different CSS. Gmail kills flexbox. Outlook breaks your spacing. Dark mode inverts your logo. An agent writing email HTML is flying blind — there's no way to see the result.

01
No two clients agree

Gmail strips flexbox, grid, position, box-shadow, and animations. Outlook, Yahoo, Apple Mail, and Thunderbird each have their own quirks. "Works in my browser" means nothing.

02
Agents can't see

An LLM can write email HTML, but it has no feedback loop. It can't open Gmail, can't check dark mode, can't tell if images got blocked. It guesses — and ships broken email.

03
Testing is manual misery

Humans paste HTML into test tools, eyeball a dozen screenshots, and hunt for what broke. It's slow, repetitive, and exactly the kind of work that should be automated.

How it works

Submit HTML. Get back screenshots and analysis.

One request. Every client. Structured results.

Post your email HTML to a single endpoint. We render it in parallel across real and simulated clients, screenshot each one at the viewport widths you specify, and return a structured report an agent can act on directly.

  • 1
    Submit — POST your HTML, pick your clients, set viewport widths and options.
  • 2
    Render — we deliver to real inboxes and simulated engines, then screenshot each variant.
  • 3
    Analyze — get a 0–100 score, CSS compatibility issues, accessibility, dark mode, and responsive findings.
  • 4
    Fix — the agent reads the issues, patches the HTML, and re-runs until it's clean.
submit-preview.sh
# Submit an email for preview
curl -X POST https://api.powerline.ai/v1/jobs \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<html>…</html>",
    "subject": "Welcome aboard",
    "clients": ["gmail", "outlook-web",
                "apple-mail", "thunderbird"],
    "viewport_widths": [360, 600],
    "options": { "dark_mode": true }
  }'

# → poll the job, then read results
{
  "summary": {
    "overallScore": 82,
    "criticalIssues": 1,
    "warnings": 3
  },
  "renders": 12 // screenshots
}
People & agents

Five ways to plug in.

However you work — pasting HTML, sending an email, or wiring up an agent — there's a native path in. No glue code required.

Paste HTML

Drop your email HTML into the box above and get a preview on the spot. Nothing to install.

Email it in

Send your email to [email protected] and we reply with a preview link. Works from any mail client.

REST API

A clean /v1/jobs JSON API with an OpenAPI spec. Submit, poll, fetch screenshots. Works from any language.

MCP Server

Native Model Context Protocol tools for Claude Code, Claude Desktop, Cursor, and any MCP client. Tool-call previews directly.

SKILLS.md

A drop-in agent skill doc served at /v1/skills.md — point your agent at it and it knows the whole workflow.