Ways to Contribute
Code Contributions
Implement features, fix bugs, improve performance
Documentation
Write guides, improve docs, create tutorials
Bug Reports
Report issues, provide reproduction steps
Feature Requests
Suggest new features and improvements
Testing
Test new features, write tests, improve coverage
Translations
Help translate AppFlowy to your language
Community Support
Help others on Discord, answer questions
Design
Contribute UI/UX designs and improvements
Getting Started
1
2
Set up development environment
Follow the setup guide to configure your development environment.
3
Find an issue
Browse the issue tracker for:
good first issue- Great for beginnershelp wanted- Community contributions welcomebug- Bug fixes neededenhancement- New features
4
Make your contribution
Follow the development workflow below to contribute your changes.
Development Workflow
1. Fork and Clone
1
Fork the repository
Click the “Fork” button on the AppFlowy GitHub repository.
2
Clone your fork
3
Add upstream remote
2. Create a Branch
Create a new branch for your work:feature/description- New featuresfix/description- Bug fixesdocs/description- Documentation changesrefactor/description- Code refactoringtest/description- Test improvements
3. Make Changes
1
Write code
Make your changes following the code style guide.
2
Test your changes
Run tests to ensure nothing breaks:
3
Write tests
Add tests for new functionality:
- Unit tests for business logic
- Widget tests for UI components
- Integration tests for user flows
4. Commit Changes
Write clear, descriptive commit messages:feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
5. Push and Create Pull Request
1
Push to your fork
2
Create pull request
- Go to your fork on GitHub
- Click “Pull request”
- Select your branch
- Fill out the PR template
- Click “Create pull request”
Pull Request Guidelines
PR Title
Use a clear, descriptive title following the commit message format:PR Description
Your PR should include:1
Description
Explain what changes you made and why.
2
Testing
Describe how you tested the changes:
- Platforms tested (macOS, Windows, Linux, iOS, Android)
- Test scenarios covered
- Screenshots or videos (for UI changes)
3
Checklist
- Code follows the style guide
- Tests pass locally
- Documentation updated
- Changelog updated (if applicable)
4
Related issues
Reference related issues:
PR Size
Keep PRs focused and reasonably sized. Large PRs are harder to review and take longer to merge.
- One feature/fix per PR
- Break large changes into multiple PRs
- Keep PRs under 500 lines when possible
Code Review Process
What to Expect
1
Automated checks
CI/CD pipelines will run:
- Code formatting checks
- Tests
- Build verification
2
Human review
Maintainers will review your code and may:
- Request changes
- Ask questions
- Suggest improvements
3
Address feedback
Make requested changes:
4
Merge
Once approved, a maintainer will merge your PR.
Review Timeline
- Initial review: 1-7 days
- Small PRs: Usually faster
- Large PRs: May take longer
Be patient! Maintainers are volunteers and may take time to review.
Reporting Bugs
Found a bug? Help us fix it:1
Check existing issues
Search existing issues to avoid duplicates.
2
Create bug report
Use the bug report template:
- Clear title
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment (OS, version)
- Screenshots/videos
3
Provide details
Include:
- AppFlowy version
- Operating system
- Error messages
- Log files (if applicable)
Requesting Features
Have an idea? Share it:1
Check roadmap
Review the public roadmap to see if it’s planned.
2
Create feature request
Use the feature request template:
- Clear description
- Use case
- Expected behavior
- Mockups (if applicable)
3
Discuss
Engage in discussion:
- Why is this needed?
- How should it work?
- Are there alternatives?
Translation Contributions
Help translate AppFlowy:1
Use inlang editor
Use the inlang online editor to add translations.
2
Or edit JSON files
Manually edit translation files in:
3
Or use machine translation
Documentation Contributions
Improve the docs:- Fix typos and errors
- Add examples and tutorials
- Clarify confusing sections
- Update outdated information
Documentation PRs are just as valuable as code contributions!
Community Guidelines
Code of Conduct
AppFlowy follows the Contributor Covenant Code of Conduct. Key principles:Be Respectful
Treat everyone with respect and kindness
Be Constructive
Provide helpful, constructive feedback
Be Welcoming
Welcome newcomers and help them get started
Be Patient
Everyone is learning and growing
Getting Help
Stuck? Ask for help:- Discord: Real-time chat with community
- Forum: Longer-form discussions
- GitHub Discussions: Design discussions
- Stack Overflow: Tag questions with
appflowy
Recognition
We value all contributions:1
Contributors page
All contributors appear on the contributors page.
2
Changelog credits
Significant contributions are credited in release notes.
3
Community spotlight
Outstanding contributors are featured in community updates.
Congratulations! If your PR is accepted, you’re now an official AppFlowy contributor!
Legal
License
AppFlowy is licensed under the AGPLv3 License. By contributing, you agree that your contributions will be licensed under the same license.Contributor License Agreement
Contributors retain copyright to their contributions but grant AppFlowy the right to use, modify, and distribute the code.Next Steps
Code Style
Learn about coding conventions
Testing
Understand the testing approach
Architecture
Deep dive into the architecture
Setup
Set up your development environment