Ways to Contribute
Code
Bug fixes, new features, performance improvements, and refactoring
Documentation
Improve guides, add examples, fix typos, and translate content
Testing
Write tests, improve coverage, and report bugs
Design
UI/UX improvements, design assets, and accessibility enhancements
Getting Started
Read the Code of Conduct
Review our Code of Conduct to understand our community standards.
Set Up Development Environment
Follow the Development Setup Guide to configure your local environment.
Find an Issue
Browse GitHub Issues for tasks labeled
good first issue or help wanted.Contribution Workflow
1. Create a Branch
Create a feature branch frommaster:
feat/- New featuresfix/- Bug fixesdocs/- Documentation changesrefactor/- Code refactoringtest/- Adding testschore/- Maintenance tasks
2. Make Changes
Write your code following our Code Style Guidelines:3. Commit Your Changes
Follow Conventional Commits format:4. Push and Create PR
Push your branch and create a pull request:Development Guidelines
Testing Requirements
Code Quality
Ensure code passes all checks:Pre-commit Hooks
Install pre-commit hooks to catch issues early:.pre-commit-config.yaml):
- Check YAML, JSON, TOML syntax
- Detect merge conflicts
- Check for large files
- Validate Python AST
- Detect private keys and secrets
Coding Standards
Python (Backend)
Python Standards
Python Standards
- Linting: Ruff (configured in
pyproject.toml) - Formatting: Ruff format
- Type Checking: mypy with strict mode
- Style: PEP 8
- Imports: At top of file, no inline imports
- Type Hints: Required for all function parameters and return values
- Docstrings: Google style for classes and public functions
TypeScript/JavaScript (Frontend)
TypeScript Standards
TypeScript Standards
- Linting: Biome (configured in
biome.json) - Formatting: Biome format
- Line Width: 80 characters
- Indentation: 2 spaces
- Imports: At top of file, no inline imports
- Type Safety: Never use
anytype - File Organization: Feature-based structure
General Principles
- No unnecessarily verbose comments - Code should be self-documenting
- Feature-based organization - Group related files by feature, not type
- Absolute imports - Use path aliases (
@/for frontend) - Single responsibility - Keep functions and components focused
- Error handling - Always handle errors gracefully
Documentation
Update documentation for:- New features and APIs
- Configuration changes
- Breaking changes
- Migration guides
Pull Request Checklist
Before submitting:- Code follows style guidelines
- Tests pass locally
- New tests added for new functionality
- Documentation updated
- Commit messages follow conventional format
- PR title follows conventional format
- No merge conflicts with
master - Changes are focused and atomic
Review Process
Review Expectations
- Response time: We aim to review PRs within 2-3 business days
- Feedback: Constructive and specific
- Iteration: Multiple rounds may be needed
- Communication: Ask questions if feedback is unclear
Commit Message Guidelines
Follow Conventional Commits format.Examples
PR Description Template
Use this template for pull requests:Getting Help
Discord Community
Ask questions and get real-time help
GitHub Discussions
Start conversations about features and ideas
Documentation
Browse comprehensive guides and references
GitHub Issues
Report bugs and request features
Recognition
Contributors are recognized in:- README contributors section
- Release notes
- Community spotlights
Next Steps
Code Style
Detailed code style guidelines
Pull Requests
PR process and requirements
Conventional Commits
Commit message format