mirror of
https://github.com/Mail-0/Zero.git
synced 2026-07-01 08:16:28 +00:00
3.5 KiB
3.5 KiB
Contributing to Mail0
Thank you for your interest in contributing to Mail0! We're excited to have you join our mission to create an open-source email solution that prioritizes privacy, transparency, and user empowerment.
Table of Contents
- Getting Started
- Development Setup
- Development Workflow
- Pull Request Process
- Coding Guidelines
- Testing
- Documentation
- Community
Getting Started
-
Fork the Repository
- Click the 'Fork' button at the top right of this repository
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/Mail-0.git
-
Set Up Development Environment
- Install Node.js (v16 or higher)
- Install required dependencies:
npm install - Copy
.env.exampleto.envand configure your environment variables - Set up your Google OAuth credentials (see README.md)
Development Workflow
-
Create a New Branch
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make Your Changes
- Write clean, maintainable code
- Follow our coding standards
- Add/update tests as needed
- Update documentation if required
-
Commit Your Changes
- Use clear, descriptive commit messages
- Reference issues and pull requests
git commit -m "feat: add new email threading feature Implements #123" -
Push to Your Fork
git push origin your-branch-name -
Submit a Pull Request
- Fill out the PR template completely
- Link any relevant issues
- Add screenshots for UI changes
Coding Guidelines
General Principles
- Write clean, readable, and maintainable code
- Follow existing code style and patterns
- Keep functions small and focused
- Use meaningful variable and function names
- Comment complex logic, but write self-documenting code where possible
JavaScript/TypeScript Guidelines
- Use TypeScript for new code
- Follow ESLint and Prettier configurations
- Use async/await for asynchronous operations
- Properly handle errors and edge cases
- Use proper TypeScript types and interfaces
React Guidelines
- Use functional components and hooks
- Keep components small and focused
- Use proper prop types/TypeScript interfaces
- Follow React best practices for performance
- Implement responsive design principles
Testing
- Write unit tests for new features
- Update existing tests when modifying features
- Ensure all tests pass before submitting PR
- Include integration tests for complex features
- Test edge cases and error scenarios
Documentation
- Update README.md if needed
- Document new features and APIs
- Include JSDoc comments for functions
- Update API documentation
- Add comments for complex logic
Areas of Contribution
- 📨 Email Integration Features
- 🎨 UI/UX Improvements
- 🔒 Security Enhancements
- ⚡ Performance Optimizations
- 📝 Documentation
- 🐛 Bug Fixes
- ✨ New Features
- 🧪 Testing
Community
- Join our discussions in GitHub Issues
- Help others in the community
- Share your ideas and feedback
- Be respectful and inclusive
- Follow our Code of Conduct
Questions or Need Help?
If you have questions or need help, you can:
- Check our documentation
- Open a GitHub issue
- Join our community discussions
Thank you for contributing to Mail0! Your efforts help make email more open, private, and user-centric. 🚀