Developer guide

AFFiNE changes quickly. Use this section to choose the right development target, then follow the linked guide in the AFFiNE canary branch for version-sensitive setup.

Choose a target

TargetAuthoritative guide
Web app and editorBuilding AFFiNE Web
Server and cloud featuresDeveloping the server
Desktop clientBuilding the desktop client
iOSiOS package guide
AndroidAndroid package guide
Documentation siteDocumentation contribution workflow

Common baseline

  1. Create work from canary, the development branch.
  2. Use the Node version in .nvmrc, the Yarn version pinned by package.json, and the Rust toolchain pinned by the repository.
  3. Install dependencies with Yarn, then build only the native packages required by your target.
  4. Run yarn lint, yarn typecheck, and the tests relevant to your change before opening a pull request.

See Project map for repository orientation, Architecture for code boundaries, and Contributing for the complete pull request flow.