Skip to content

Contributing

Guidelines for contributing to JSX-email

Guidelines

We 💛 contributions! Please follow these basic rules:

  1. Be respectful and professional
  2. Search existing issues before creating new ones
  3. Test and lint code locally before submitting
  4. Follow the project’s code style

Repository Setup

JSX-email uses a Monorepo structure with:

  • pnpm for package and workspace management
  • Moon for task running and build orchestration

Prerequisites

  • Node.js v18.0.0 or higher (NVM recommended)
  • Basic familiarity with React

Development Setup

  1. Bootstrap your environment:

    Terminal window
    ./shared/bootstrap.sh
  2. Install dependencies:

    Terminal window
    pnpm install
  3. Build all packages:

    Terminal window
    moon repo:build.all

Development Workflow

Before Committing

  1. Lint your changes:

    Terminal window
    moon run repo:lint
  2. Run tests:

    Terminal window
    moon run repo:test
  3. Fix any errors or warnings before committing

Pull Requests

Submission Guidelines

  1. Template Usage

    • Fill in the PR template completely
    • Don’t modify the template format
  2. Description

    • Explain what the code does
    • Provide steps to test/execute
    • Include relevant test cases
  3. Quality Checks

    • Ensure all tests pass
    • Fix any lint errors
    • Resolve failing checks
  4. Issue Resolution

    • Link related issues using “resolves #[issue number]”
    • Example: “resolves #23”

Review Process

For faster reviews:

  • Break large changes into smaller PRs
  • Provide clear context and motivation
  • Explain why the change matters
  • Link to relevant issues or discussions