Thank you for considering opening a pull requests to the project. Without contributions, React Email would not be possible.

Before opening a pull request, please first view our Development workflow. The setup guide will help you properly set up the project.

Contribution guidelines

We ask all contributors follow a few guidelines before contributing.

Discuss features before contributing

While our community is open-source, we ask that features be discussed before they are implemented.

To discuss a feature, please open up a discussion as an RFC.

Once we come to an agreement on the feature and its implementation, you are welcome to create the feature and open a pull request.

Create an issue for a bug before contributing

If you’ve found a bug, and plan to fix it, please open up a proper issue first. While you develop your fix, the issue can help us track the work, allow for other voices to offer suggestions, provide workarounds for those facing the bug if possible, and finish fixing the bug if you are no longer able to fix the issue.

Whenever possible, please add tests to your fixes, to ensure that regressions aren’t introduced in later versions of the codebase.

Creating the pull request

Please create your pull request using the following steps:

  1. Create a fork of the repo
  2. Create a new branch that represents your changes
    • If your PR is for anything inside apps/*, you should create your new branch from main
    • Otherwise, switch to the canary branch to create your new branch from it
  3. Make your changes and commit them to your branch
  4. Create the pull request from your fork
    • If the PR is for anything inside apps/*, open a PR into main
    • Otherwise, open a PR into the canary branch

Writing a good description

Once you open your pull request, we will need to review it. The better your communicate what you did, the easier and quicker we can review your PR.

Currently, we do not have a pull request template you can follow to help you, but you can follow some common guidelines.

1. Describe your intent

Every change has an intent.

  • Bug fix pull requests intend fix issues.
  • Feature pull requests add new features.

Understanding your intent helps maintainers read your code quicker, offer more helpful feedback, and ultimately merge your request.

2. Describe your technical difficulties

If you went through technical difficulties, describe them.

Explaining your difficulties also gives you a chance to describe your thought process, which solutions you considered and discarded, and why you chose the one you did. This process can help avoid unnecessary back and forth and allows us to provide more helpful feedback.

3. Write down the specific changes the pull request introduces

Writing down your specific changes—both generally and technically—makes it clear what your code does. Consider also including what key points your code does not address if appropriate to help us understand the scope of your work.

Getting in touch with us

If you have any questions or need help, you can find us on Discord.