Analysis updated 2026-05-18
Build responsive email templates that render correctly in Gmail, Outlook, and Apple Mail without manual HTML tweaking.
Create marketing campaign emails using simple markup tags instead of writing complex, client-specific HTML.
Generate transactional emails (receipts, confirmations) programmatically from Node.js code.
| mjmlio/mjml | statsd/statsd | sweetalert2/sweetalert2 | |
|---|---|---|---|
| Stars | 18,052 | 18,040 | 18,078 |
| Language | JavaScript | JavaScript | JavaScript |
| Setup difficulty | easy | moderate | easy |
| Complexity | 2/5 | 3/5 | 1/5 |
| Audience | developer | ops devops | developer |
Figures from each repo's GitHub metadata at analysis time.
MJML is a markup language, a special way of writing code, specifically designed to make it much easier to create HTML emails that look correct across different email clients (such as Gmail, Outlook, and Apple Mail). Writing HTML emails by hand is notoriously painful because email clients each interpret HTML and CSS differently, often ignoring modern web standards. MJML solves this by letting you write in a simpler, more structured syntax, then automatically compiling it into the complex, compatible HTML that email clients need. You write MJML using tags like mj-section, mj-column, and mj-text, which map to layout and content concepts. The MJML engine then translates this into a finished HTML email. Because the engine handles all the cross-client compatibility logic, your email will render correctly without you needing to know the many quirks of each client. MJML can be used in three ways: through a free online editor, as a command-line tool that takes an .mjml file and outputs an .html file, or as a JavaScript library you call from Node.js code. Editor plugins are available for Visual Studio Code and Sublime Text. The project is open source.
A markup language that compiles to HTML emails compatible across Gmail, Outlook, Apple Mail, and other clients without manual cross-client tweaking.
Mainly JavaScript. The stack also includes JavaScript, Node.js.
Use freely for any purpose including commercial, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.