Thanks for your interest in contributing to Ready Mail! We welcome contributions from developers of all skill levels.
- Node.js (v18 or higher)
- pnpm (v9.7.1 or higher - we use pnpm for this project)
- Git
Note: This project uses pnpm as the package manager. Please do not use npm or yarn as they may cause dependency conflicts.
-
Fork the repository
-
Clone your fork:
git clone https://github.com/your-username/ready-mail.git cd ready-mail -
Install dependencies:
pnpm install
-
Set up environment variables:
cp .env.example .env
Fill in the required environment variables.
-
Start the development server:
pnpm dev
- Check existing issues before creating a new one
- Use the issue templates when available
- Include steps to reproduce the bug
- Add screenshots if relevant
- Open an issue to discuss the feature before implementing
- Explain the use case and why it would be valuable
- Consider if it fits Ready Mail's focus on developer-friendly email design
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes:
- Follow the existing code style
- Add tests if applicable
- Update documentation if needed
-
Test your changes:
pnpm test pnpm build -
Commit your changes:
git commit -m "feat: add new email template for password reset"Use conventional commit format:
feat:,fix:,docs:,style:,refactor:,test: -
Push to your fork:
git push origin feature/your-feature-name
-
Open a pull request:
- Use the PR template
- Link any related issues
- Add screenshots for UI changes
- Describe what you've changed and why
- Use TypeScript for type safety
- Follow ESLint and Prettier configurations
- Use meaningful variable and function names
- Add comments for complex logic
- Keep components small and focused
When contributing new email templates:
- Ensure they work across major email clients
- Test in both light and dark mode
- Include mobile-responsive design
- Add appropriate fallbacks for unsupported features
- Follow the existing template structure
apps/
web/ # Main Next.js application
packages/
ui/ # Shared UI components
config/ # Shared configuration
database/ # Database schema and utilities
- Use tools like Litmus or Email on Acid for cross-client testing
- Test on popular email clients: Gmail, Outlook, Apple Mail, Yahoo
- Verify both desktop and mobile rendering
- Check dark mode compatibility
pnpm dev # Start development server
pnpm build # Build for production
pnpm test # Run tests
pnpm lint # Run ESLint
pnpm format # Format code with Prettier
pnpm db:push # Push database schema changes
pnpm db:studio # Open Prisma Studio (database GUI)
pnpm db:generate # Generate Prisma clientThanks for helping make Ready Mail better for the developer community!