Skip to main content
We welcome contributions from everyone! Whether you’re fixing a typo, adding a feature, or improving documentation, your help makes AFFiNE better.

Ways to Contribute

Before You Start

Code of Conduct

Please read and follow our Code of Conduct. We’re committed to providing a welcoming and inspiring community for all.

Contributor License Agreement (CLA)

Before we can accept your pull request, you need to sign our Contributor License Agreement. This is a one-time process.
1

Read the CLA

Review the terms in the CLA document
2

Edit the file

Click the edit button and add your GitHub username
3

Submit a PR

Submit the change as a pull request

Types of Contributions

Discussions

Join our GitHub Discussions to:
  • Ask questions
  • Share ideas
  • Help others
  • Discuss features
  • Showcase your work

Issues

Issues track bugs and feature requests: Before creating an issue:
  1. Search existing issues to avoid duplicates
  2. Use the appropriate template
  3. Provide clear, detailed information
  4. Include steps to reproduce (for bugs)
  5. Add screenshots or videos if helpful
Issue Labels:
  • bug - Something isn’t working
  • feat - New feature request
  • good first issue - Good for newcomers
  • help wanted - We need your help
  • documentation - Docs improvements

Pull Requests

Pull requests are how you submit code changes:
1

Find or create an issue

Make sure there’s an issue for what you’re working on
2

Fork the repository

Create your own copy of the repository
3

Create a branch

git checkout -b fix/your-bug-name
# or
git checkout -b feat/your-feature-name
4

Make your changes

5

Test your changes

Run tests and ensure everything works
6

Commit your changes

git add .
git commit -m "fix: clear description of your change"
7

Push to your fork

git push origin fix/your-bug-name
8

Open a pull request

Go to GitHub and click “New pull request”
Pull Request Checklist:
  • Linked to an issue
  • Clear description of changes
  • Tests added/updated
  • Documentation updated
  • No linting errors
  • CLA signed
  • Passes CI checks

Translations

Help make AFFiNE accessible worldwide:
  1. Join our Discord
  2. Head to the #translations channel
  3. Follow the translation workflow
  4. Use our localization platform
Translation Guidelines:
  • Maintain consistent terminology
  • Keep UI text concise
  • Preserve formatting and variables
  • Test in the actual UI

Community

Get Help

Stuck? Here’s where to get help:

Stay Updated

Recognition

We value all contributions:
  • All contributors are listed in our README
  • Significant contributions are highlighted in release notes
  • Active contributors may be invited to join the core team
We use All Contributors to recognize everyone who contributes to the project.

Thank You!

Thank you for taking the time to contribute to AFFiNE. Your efforts help make this project better for everyone! 🚀