From Figma to email-safe HTML in one click

Turn any Figma design into responsive HTML that holds up in Outlook. No coding needed.

No sign-up, no card. 5 free emails every month.

The MarkupMail plugin in Figma with the sample email open. The layer list shows whether each section renders as an image, live text or both, the Hero section is set to Auto, and the Preview tab shows the email’s header and hero with 3 recommendations before sending.

Works with any email platform. Holds up in every inbox.

  • Apple Mail
  • Gmail
  • Outlook
  • Yahoo Mail
  • Mailchimp
  • Klaviyo
  • HubSpot
  • Salesforce
  • Brevo
Sound familiar?

The design’s done. The email isn’t.

Getting a design out of Figma and into an inbox usually means one of three things.

  • Rebuild it by hand

    Hours of nested tables and Outlook workarounds, for an email that took an hour to design.

  • Export it as one big image

    Quick, but it’s blank when images are off, has only one clickable link, and is more likely to land in spam.

  • Wait on a developer

    Every copy change goes back in their queue, so even small fixes add a delay.

Or skip all three. MarkupMail turns your design into real HTML in one click, and checks it before you export.

How it works

Three steps from Figma to export

No rebuilding by hand, no waiting on a developer. Design the email the way you already do.

  1. 01Select a frame

    Design the email in Figma as you normally would, then select the frame you want to export.

  2. 02Click Generate

    MarkupMail builds email-safe HTML that holds up even in Outlook, with your text still editable. Then it runs 30+ checks and flags anything to fix.

  3. 03Export

    Download a ZIP with the HTML, a plain-text version and the images, or copy the HTML and paste it into your email platform.

Features

Built the way email actually works

Real HTML wherever email can handle it, an image only where it can’t, and a reason every time.

  • Real HTML, not a picture

    Text stays live and editable. Only what email genuinely can’t do (rotated layers, masks, etc.) becomes an image, and MarkupMail tells you why.

  • Built for Outlook

    Buttons, columns and background images look right in Outlook, even the old desktop versions.

  • Responsive or static

    Columns stack on phones automatically, or keep the desktop layout on every screen.

  • Layer controls

    Set any layer to render as an image or live HTML, show it on desktop or mobile only, and choose how columns and cards sit on phones.

  • Ready to send

    A ZIP with readable and minified HTML, a plain-text version and the images. Or copy the HTML straight out.

  • Works with your tools

    Merge tags stay exactly as you typed them, images can be hosted wherever you like, and GIFs keep moving.

And it checks for 30+ problems before you export

  • Too big for Gmail
  • Links going nowhere
  • Missing alt text
  • Missing preheader
  • Buttons too small to tap
  • Low-contrast text
  • Missing unsubscribe link
  • Missing postal address
  • Too image-heavy
  • Text too small
  • Fonts without a fallback
Inside the plugin

Check every detail before it goes out

Preview, check and copy your email in six tabs, without leaving Figma.

Preview

See the email on desktop or a phone from 320 to 430px wide, in dark mode, with images off, or in an Outlook simulation. Inspect mode shows what’s live text, what’s an image and what’s a button, and a line marks where Gmail will cut the email off.

The Preview tab showing the sample email at phone width with Inspect on, which outlines what’s an image, what’s live text and what’s a button.

Checks

Catches 30+ common problems before you export, from missing unsubscribe links and alt text to low contrast and Gmail’s size limit. It also tells you whenever something can’t be converted exactly, and why. A verdict at the top tells you whether the email is ready to send.

The Checks tab with 3 recommendations before sending: 7 images need alt text, 3 images use their layer name as alt text, and 1 image is over 1 MB, each with a link to fix it in the Images tab. Below are 3 checks that passed and 7 notes on email client support.

Images

Every image with its size and file type. Write alt text right there, or mark an image as decorative.

The Images tab listing each image with its size, file type and a box for alt text, plus a switch to mark it as decorative.

HTML

The finished code, colour-coded and ready to copy. Choose readable, or minified for a smaller file.

The HTML tab showing the email’s colour-coded code, with a switch between readable and minified, the file size, and buttons to copy either version.

Text

The plain-text version of your email, generated for you.

The Text tab showing the plain-text version of the sample email, with its word count and a Copy text button.
Layer controls

Every layer, your call

MarkupMail makes sensible choices on its own. When you know better, override them layer by layer.

AutoImageLiveYour design,already codedTry it freeLiveEditable textImageOne picture, as designed AutoImageLiveYour design,already codedTry it freeLiveEditable textImageOne picture, as designed
Pricing

Free for 5 emails a month

Both plans get every check and the full preview. Upgrade when you need to export more.

Save 25%

Starter

Try it on real emails, with nothing held back but volume.

Free

Start free

What you get

  • 5 emails a month
  • All 30+ checks
  • The full preview, including Outlook and dark mode
  • No coding needed
  • Works with any design
  • First email in minutes
  • Full refund within 14 days
FAQ

Questions, answered

The things people ask before their first send.

How do I turn a Figma design into an HTML email?

Install MarkupMail from the Figma Community, select your email’s frame and click Generate. You’ll get email-safe HTML that you can download as a ZIP or copy straight into your email platform. No coding needed.

Do I need auto layout?

No. MarkupMail converts any design. With auto layout it knows how to make your email responsive; without it, it makes a best guess. Or choose Static to keep your layout exactly as designed.

Will my email look right in Outlook?

Yes, that’s what MarkupMail is made for. It builds buttons, columns and background images the way Outlook expects, so they look right even in the old desktop versions. You can check with the Outlook preview, then send yourself a test before a big send.

Does it work with Mailchimp, Klaviyo and HubSpot?

Yes. Paste the HTML into Mailchimp, Klaviyo, HubSpot, Salesforce, Brevo or any platform that accepts custom HTML. Your text stays editable there, and merge tags like *|FNAME|* or {{ first_name }} stay exactly as you typed them.

Can I edit the text after exporting?

Yes. MarkupMail keeps your text as live text, not part of an image, so you can change the copy in your email platform without going back to Figma. Only what email can’t do, like rotated layers or masks, becomes an image.

Is my design uploaded anywhere?

No. MarkupMail builds your email on your own computer, and your designs are never sent to us. Our privacy policy has the details.

What counts as one of my 5 free emails?

Only exports. An email counts the first time you download it or copy its HTML, and exporting the same email again doesn’t count. Generating, previewing and checking never count. Your 5 free emails reset every calendar month, and Pro is unlimited.

Can I cancel any time?

Yes. Cancel from Manage subscription in the plugin’s Settings, and your plan keeps working until the end of the period you’ve paid for.

Can I get a refund?

Yes. If MarkupMail isn’t right for you, email us within 14 days of your first payment for a full refund.

Stop rebuilding emails by hand.

Install MarkupMail in Figma, select a frame and click Generate. Your first 5 emails every month are free.

Try MarkupMail free