This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to support@mjml.io.
MJML is made up of different packages, which make it very modular but might also make it hard for you to know how it is organized.
There are 3 types of packages:
-
mjml-core
: the engine that renders mjml components -
mjml-cli
: the client, base on the mjml-core interface -
mjml
: a standalone client including the standard library of components -
one standalone package for each component
Here are the guidelines to help maintainers and the community better understand and solve your issue.
-
Check the FAQ for a list of common questions and problems
-
Check the documentation for more details on how to use MJML, MJML components, how to create a custom component and more
-
Search issues and pull requests to see if a similar one might have been already asked before
Explain the problem you’re facing and include as many details as you can to help maintainers reproduce the problem:
-
Use a clear and self-explanatory title
-
Provide all the specific information that might be needed to reproduce the problem, such as:
-
How you’re using MJML (whether you’re using the try it live, running it locally, using the app, or any other way)
-
The version of MJML you’re using
-
The MJML code you used to encounter this bug, as copy/pasteable snippets, using Markdown Code Blocks
-
The name and version of the email client(s) on which a bug is encountered
-
Screenshots of the issue / behaviour before enhancement on the given email clients
-
Explain why what you encountered is a bug / how your enhancement would improve MJML: what did you expect to see and why?
-
-
If you want MJML to support a new styling attribute, **add screenshots **from Litmus or Email On Acid showing that this attribute is supported for email clients supported by MJML
[Short description of problem here]
**Reproduction Steps:**
1. [First Step]
2. [Second Step]
3. [Other Steps...]
**Expected behavior:**
[Describe expected behavior here]
**Observed behavior:**
[Describe observed behavior here]
**Screenshots and GIFs**
![Screenshots and GIFs which follow reproduction steps to demonstrate the problem](url)
**MJML version:**
[Enter MJML version here]
**Email clients the bug is seen on:**
[Enter email clients names and versions here]
If you’re not sure how you can contribute to MJML, start looking for the beginner and help-wanted labels.
- Document your code
- Update the documentation (example: table of a component’s supported attributes if you add an attribute to this component)
- Test your pull request locally
- Include screenshots from Litmus or Email On Acid showing that your feature is supported for email clients supported by MJML
- Provide the MJML code you used to test locally and on the screenshots
- We suggest following the React Styleguide by Airbnb
Type of issue and issue state
Label name | Description |
---|---|
Feature request |
Feature requests or improvements |
Bug |
Confirmed bugs or reports likely to be bugs |
Community-help-wanted |
The MJML team would appreciate help from the community in implementing these issues |
Beginner |
Less complex issues that would be good first issues to work on for users who want to contribute to MJML |
More information needed |
We need more information to solve this issue (see How to submit a good bug report or enhancement) |
Needs reproduction |
Likely bugs we couldn’t reproduce |
Duplicate |
Issues that are duplicates of other issues |
Invalid |
Issues which aren’t valid (e.g user errors) |
Tooling idea |
Feature requests that might be good candidates for tools around MJML instead of extending MJML |
Label name | Description |
---|---|
Not rendering |
the engine won’t render a template without a valid reason |
General rendering issue |
the HTML rendered is not responsive while respecting MJML’s best practices |
Email client name |
The HTML rendered is not responsive for a specific email client |
CLI |
issues related to the MJML Command Line Interface |
Documentation |
issues related to the MJML documentation |
Label name | Description |
---|---|
Work in progress |
PR which are still being worked on, more changes will follow |
Needs review |
Pull requests which need code review and approval |
Under review |
PR being reviewed |
Requires changes |
PR which need to be updated based on review comments and then reviewed again |
Needs testing |
PRs which need testing on Litmus or Email On Acid |