The Pros and Cons of MJML


Kristina Lauren

March 8, 2022

While email marketing still remains one of the most effective ways to reach customers, designing HTML emails that look great on all devices and browsers can be a daunting task. Fortunately, in the last few years, MJML has swooped in and changed the game. MJML is a markup language that makes it easy to design beautiful, responsive emails. It’s simple to learn, easy to use, and it’s quickly becoming one of the top go-to tools for email marketing. But if you’re still weighing the usefulness of MJML, here are some pros and cons to help you decide if it’s the right markup language for you.

What are the pros of using MJML?

1. It’s easy to get started with MJML

The idea of having to learn a new markup language may seem somewhat intimidating or at least time-consuming, especially for those who have never tried their hand at coding, but MJML is extremely easy to learn. In fact, it’s so easy that you can likely pick it up in under an hour as a total beginner or in even less time if you’re already familiar with HTML. This is because MJML uses very simple syntax and the documentation isn’t overly technical, making it straightforward for those who just want to start coding their first email right away. For example, if you want to create a button in MJML, you would use the component <mj-button>, specify your text, fonts, and colors with some inline CSS, if necessary, and you’re done. You can even generate social media icons for the most popular platforms when you use the <mj-social> and <mj-social-element> components. If you’re interested in a step-by-step tutorial on building a complete email in MJML, check out one of our previous blog posts.

2. Saves time

MJML being easy to use goes hand in hand with the language being a huge time saver. Coding emails with HTML can unfortunately involve a lot of complications, and using HTML alone to code emails will require extra work  for styling and responsiveness. Since external CSS and JavaScript don’t work in most clients, you may find yourself writing a lot of HTML code just to create something simple—if you’ve ever tried to code an email with just HTML, you already know how crazy nesting tables can get. Naturally, the more code you have, the more likely things are to get a little messy, which leaves the door open for silly mistakes to be made. With MJML, however, you can avoid many of the pitfalls that come with HTML email coding. MJML was created to provide responsive email design, which means less complicated code, and MJML is constantly updated to keep up with the latest email client changes.

3. Excellent documentation

Nothing is worse than trying to learn a new programming language without the proper tools or guide. Fortunately, Mailjet, the creator of MJML, went to great lengths to make sure the most important aspects of coding are covered. On the official MJML website, you can find a detailed guide on how to create basic email elements, like sections, buttons, and images, as well as community components. The latter is put together by other MJML users who have contributed to the MJML framework. Some of these contributions include code for creating charts or QR codes and new community components are constantly being added. We also explain many of the MJML components in-depth in our MJML cheatsheet.

4. MJML is open source

This means that MJML has been specifically designed to be accessed, modified, and distributed by anyone for any purpose. This collaborative model allows people from all over to use their expertise and creativity to consistently improve MJML, helping both new and experienced users benefit. MJML has a standard collection of components, but as mentioned previously, users can create their own components and share them with the wider community. You’ll find step-by-step instructions here on how to make your own custom components when you’re ready.

5. There are multiple ways to use MJML

When it comes to actually coding with MJML, you’re not constrained to any one platform. Here are a few ways that you can use or install MJML:

  • - Using MJML’s online editor, you can code directly within your browser.
  • Download the MJML app – this is a desktop app, so you’ll be able to use it without internet access and it comes with a live preview function.
  • Node.js – For those a little more experienced with web development, you can install MJML using npm.
  • Atom Plugin – Includes error-spotting and a live preview feature like the MJML app.
  • Visual Studio Code plugin – Ability to send emails with Nodemailer or Mailjet.
  • Sublime Text Plugin – Simply highlights MJML code.
  • Gulp plugin - Allows you to use your engine to render HTML if you have custom components linked.
  • Check out the MJML community page for more useful tools, libraries, and plugins.

Scalero also supports MJML so our users have access to it when creating templates.

What are the cons of using MJML?

1. The syntax may be too simple

Don’t get it wrong, there’s a lot you can do with MJML, but it does have its limitations. MJML was launched by Mailjet in 2016 so it’s still a fairly new language and, as a result, still has some kinks to work out. For example, you may run into issues with background images not rendering properly on all email clients. MJML is also known to be problematic at times on Outlook. Responsiveness when it comes may get somewhat complicated if you want specific behaviors on mobile since MJML adds CSS classes by default, so you would need to override the unnecessary properties.

2. HTML conversion can get messy

Although MJML does a great job of creating responsive HTML code, sometimes that code isn’t 100% clean and you may find yourself having to add in or remove certain elements. The converted HTML code can also be quite complex, so if you’re not very familiar with HTML or CSS, a seemingly small change can result in pesky errors. Since it currently isn’t possible to convert HTML code to MJML, you’ll want to make any structural changes, such as adding new sections, to your email in the original MJML file instead of the HTML.

3. Large file sizes

MJML code itself is fairly compact, but once it’s converted to HTML you’ll see just how much code is packed in. The amount of code is often necessary in order to make the code render properly with as many email clients as possible. Some clients will cut off an email if the size is too big. Gmail, for example, has a limit of 102kb. Recipients can still click to view the rest of the email in a browser, but there is a workaround to this problem—you can minify the code. Minification is exactly what it sounds like—it minimizes the amount of code, and as a result, decreases the file size. When you use the MJML online editor and select “minify HTML”, MJML will shrink the HTML output code. Even if you don’t use the online editor, you can always use a plugin minifier.


MJML offers some clear pros and cons, but it’s safe to say that the good far outweighs the bad. Overall, MJML is easy to use, saves time and energy, and looks great on almost any email client, so we would recommend that you give it a try if you haven’t already. If you need more clarification or help with your MJML code, our team at Scalero is always happy to help—just send us an email at But if you’d like to have custom, responsive email templates built out for you or if you need more help creating a solid email marketing strategy, contact us here.

Join our mailing list

Get your fix of marketing, design and automation tips, all written by industry experts.


Join our mailing list

Get your fix of marketing, design and automation tips tailor made for email written by industry experts.
Clutch Top 1000 Global 2022 +1 510-394-2442San Francisco, CaliforniaMexico City, MexicoCopenhagen, Denmark