MJML vs Mosaico
MJML
mjml.ioMosaico
mosaico.ioSide by side
| Figure | MJML | Mosaico |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | — |
| Web | Yes | Yes |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | — |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 3 | 1 |
| Spec score · Email Design Software | 8.6 (#7) | 7.6 (#30) |
| Founded | 2015 | 2015 |
| License | The main MJML repository is released under the MIT license. | The Mosaico code is distributed under the GPL-3.0 license. |
| Purpose | MJML is a markup language designed to reduce the difficulty of coding responsive email. | Mosaico is a JavaScript library for editing email templates, with editing options defined by each template. |
| Self-hosting | Because the compiler is open source and installable from npm, teams can run MJML locally or in their own build and CI systems. | The README describes building and running Mosaico locally and includes Dockerfiles for Alpine Linux and CentOS 7. |
| Support | MJML invites users to contact [email protected] and participate through Slack and GitHub. | The project directs free-support requests to GitHub issues and lists commercial support by email. |
Plans
In their own words
MJML
MJML is a markup language for building responsive email layouts. Its engine converts MJML into email HTML made with nested tables and inline CSS, with responsive behavior for popular email clients, including Outlook. Reusable, extensible components provide a starting point, and users can create their own components. MJML is open source under the MIT license and free to use. Its online editor supports writing and rendering MJML, and its free REST API renders markup into responsive HTML. The command-line interface can compile files, watch for changes, and save generated HTML to a chosen file. Local installation is available through npm on macOS, Linux, and Windows; plugins are available for Visual Studio Code and Sublime Text, alongside a desktop app. API accounts receive an Application ID and two API keys, with public and secret keys intended for browser and back-end use. Includes are ignored by default, and enabled include paths are restricted to approved roots. Once the HTML is rendered, users must send it through an email service provider or directly from a shell. The mj-button component is not fully clickable because of email-client support.