Thank you for investing your time in contributing to our project! Any contribution you make will be reflected on our GitHub ✨.

Read our Code Of Conduct to keep our community approachable and respectable. Join our Discord server for more.

In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.

Use the table of contents icon on the top left corner of this document to get to a specific section of this guide quickly.

New contributor guide

To get an overview of the project, read the README. Here are some resources to help you get started with open source contributions:

Types of contributions

You can contribute to AFFiNE in several ways. This repo is a place to discuss and collaborate on AFFiNE!

📣 Discussions

Discussions are where we have conversations.

If you’d like help troubleshooting a docs PR you’re working on, have a great new idea, or want to share something amazing you’ve learned in our docs, join us in discussions.

🐞 Issues

Issues are used to track tasks that contributors can help with. If an issue has a triage label, we haven’t reviewed it yet, and you shouldn’t begin work on it.

If you’ve found something in the content or the website that should be updated, search open issues to see if someone else has reported the same thing. If it’s something new, open an issue using a template. We’ll use the issue to have a conversation about the problem you want to fix.

🛠️ Pull requests

A pull request is a way to suggest changes in our repository. When we merge those changes, they should be deployed to the canary environment within 24 hours and open in browser to visit it. You can create a new pull request and view current pull requests.

❓ Support

We are a small team working hard to keep up with the documentation demands of a continuously changing product. You may be able to find additional help and information on our social media platforms and groups - the links to these can be found in our README.

🌏 Translations

AFFiNE is internationalized and available in multiple languages. The source content in this repository is written in English. We integrate with an external localization platform to work with the community in localizing the English content. You can find more info on our community page, in our i18n General Space .

Getting started


Create a new issue or feature request

If you spot a problem, search if an issue already exists. If a related issue doesn’t exist, you can open a new issue using a relevant issue form.

Solve an issue

Scan through our existing issues to find one that interests you. You can narrow down the search using labels as filters. See our Labels for more information. As a general rule, we don’t assign issues to anyone. If you find an issue to work on, you are welcome to open a PR with a fix.

Make Changes

Make changes in the UI

Click Make a contribution at the bottom of any docs page to make small changes such as a typo, sentence fix, or a broken link. This takes you to the .md file where you can make your changes and create a pull request for a review.

Make changes in a codespace

For more information about using a codespace for working on GitHub documentation, see “Working in a codespace.” For more dev tutorials see Dev Workflow.

Make changes locally

You should fork the repository and clone it locally to make changes. For more dev tutorials see Dev Workflow.

Commit your update

Commit the changes once you are happy with them.

Reach out the community members for necessary help.

Once your changes are ready, don’t forget to self-review to speed up the review process.

Pull Request

When you’re finished with the changes, create a pull request, also known as a PR.

  • Fill the “Ready for review” template so that we can review your PR. This template helps reviewers understand your changes as well as the purpose of your pull request.
  • Don’t forget to link PR to issue if you are solving one.
  • Enable the checkbox to allow maintainer edits so the branch can be updated for a merge. Once you submit your PR, a Docs team member will review your proposal. We may ask questions or request for additional information.
  • We may ask for changes to be made before a PR can be merged, either using suggested changes or pull request comments. You can apply suggested changes directly through the UI. You can make any other changes in your fork, then commit them to your branch.
  • As you update your PR and apply changes, mark each conversation as resolved.
  • If you run into any merge issues, checkout this git tutorial to help you resolve merge conflicts and other issues.

Contributor License Agreement (CLA)

The CI will check CLA for every PR. To accept your pull request, we need you to submit a CLA. You only need to do this once, so if you’ve done this before, you’re good to go. You can find the sign URL from CI check or open manually and sign it.

All CLAs you signed can be found at

Your PR is merged!

Congratulations 🎉🎉! The AFFiNE team thanks you ✨.

Once your PR is merged, your contributions will be publicly visible on our GitHub.

Now that you are part of the AFFiNE community, see how else you can join and help over at Document.