Preview

What it is.
MJML is an open-source markup language for responsive email. You write semantic components and its engine compiles them into the HTML that email clients render.
What you stop writing by hand is the gain. Nested tables and conditional comments come out of the compiler, so a layout change is an attribute edit in the source.
What you get.
- A component syntax covering sections, columns, buttons and text
- Compiled HTML that carries the table markup older clients need
- A documented component reference with every attribute listed
- Command line and Node tooling for a build step
- Plugins for common editors so the compile runs as you write
How to set it up.
Read the component reference at documentation.mjml.io before you start, since the attributes are where the layout control lives.
Wrap your layout in mj-section and put each column in an mj-column.
Set widths and padding as attributes on the column instead of in inline styles.
Compile to HTML with the command line tool or the Node package.
Send the compiled file through a spam and rendering check before it goes to a list.
Pricing Plans
MJML
$0
open-source, no account, no send limits
Use cases
Build without hand-writing tables
Write the component syntax and let the compiler produce the markup.
Survive an old client
Send compiled HTML that holds its layout where modern CSS gets stripped.
Hand a template to a developer
Point them at the component reference instead of explaining the nesting.
Best for
Building templates from scratch
You need a responsive email that holds up across clients and don't want to hand-write nested tables.
Templates in version control
The source is text, so an email template reviews like code.
Open the tool
Opens on Google in a new tab.
