Self-hosted service
toeverything/AFFiNE avatar
toeverything/AFFiNE

AFFiNE: A Local-First Workspace That Merges Docs and Whiteboards

Privacy-first, local-first knowledge base that fuses docs, whiteboard canvas, and tables into one workspace — an open-source alternative to Notion and Miro.

72,623 stars5,275 forksTypeScriptLicense varies

At a glance

What is it?
AFFiNE is an open-source, local-first alternative to Notion and Miro that combines documents, whiteboards, and databases into a single canvas. This review examines its architecture, setup, and the trade-offs of adopting it.
Who is it for?
Adopt AFFiNE if you need a local-first, self-hostable workspace that combines block-based documents with an edgeless canvas, and you are comfortable with a fast-moving canary release cycle. Do not adopt it if you require a stable production release, a mature plugin ecosystem, or if you cannot sign a Contributor License Agreement when contributing code.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What AFFiNE Actually Solves

The problem it solves is also about data ownership. AFFiNE is local-first, meaning your data lives on your disk by default, not in a vendor cloud. That is a direct answer to Notion and Miro, which are cloud-only. For teams with compliance constraints or offline needs, this is a concrete advantage. The README emphasizes that you always own your data, in spite of the cloud. That phrase hints at a hybrid model: local storage plus optional real-time sync. This is a meaningful differentiator, but it also introduces complexity, because local-first sync is harder to get right than a simple server database.

How the Block Canvas Architecture Works

The canvas also supports slides, which is unusual. You can create a presentation from the same blocks. This reduces the need for a separate slide tool. The README lists slides as a building block, so a slide deck is just a structured collection of blocks. This is a clever reuse of the block model, but it also means slide-specific features like animations or speaker notes may be limited. The documentation does not specify those details, so treat that as an open question.

Local-First, Sync, and Self-Hosting

AFFiNE is local-first, which means the primary copy of your data is on your device. The README states that you always own your data on your disk, in spite of the cloud. It also supports real-time sync and collaboration on web and cross-platform clients. That implies a sync server, but the README does not explain the protocol or whether it is end-to-end encrypted. For a privacy-focused tool, that omission is notable. Self-hosting is explicitly supported: the documentation has a page titled self-host-affine. The README links to it, so the path exists, but the details are outside this repository. For an engineer, self-hosting means you can run your own server, which is a strong advantage over Notion and Miro. However, the default branch is named canary, and recent releases are all canary builds. That suggests the project prioritizes rapid iteration over stability. If you self-host, you may be pulling a moving target. The README also mentions a plugin community and third-party blocks are coming soon, but they are not here yet. That is a limitation to note before you commit.

Getting It Running: Commands and Config

The README does not include a quickstart with exact commands, but it points to the documentation for self-hosting. The repository is TypeScript, and the default branch is canary. To run it, you would typically clone the repo, install dependencies with a package manager like pnpm or yarn, and run a development server. The README does not specify the commands, so I cannot give you the exact sequence. What is concrete: you can try the live demo at app.affine.pro, and you can download builds from the releases page. The releases are named like v2026.8.28-canary.1251, which indicates a date-based versioning scheme. For a production deployment, you would need to consult the self-hosting docs, which are not in this README. The absence of a quickstart in the repository is a friction point. If you are evaluating AFFiNE, expect to spend time reading external documentation. The README also requires a Contributor License Agreement for code contributions, which is a legal step that some contributors may find burdensome.

The AI Partner and Its Caveats

AFFiNE includes a multimodal AI partner, branded as AFFiNE AI. The README lists capabilities: writing reports, turning outlines into slides, summarizing articles into mind maps, sorting job plans, and drawing or coding prototypes from a prompt. This is a broad set of features, but the README does not specify which AI models are used, whether they run locally or in the cloud, or what data leaves your device. For a privacy-first tool, that is a significant gap. If the AI runs in the cloud, your local-first data may be sent to a third party when you use that feature. The README does not address this. The AI is described as pushing your creativity to the edge, which is marketing language, not a technical spec. For engineers, the AI is a differentiator, but it is also a risk. You need to verify the privacy policy and the self-hosted AI options before adopting it. The README links to affine.pro/ai, but the details are outside this repository.

Comparing AFFiNE to Notion and Miro

The README positions AFFiNE as a better alternative to Notion and Miro. The comparison is fair on one axis: both Notion and Miro are closed-source and cloud-only. AFFiNE is open-source and local-first. That is a real difference. Notion excels at databases and structured content, but it has no true infinite canvas. Miro excels at visual collaboration, but its data model is not block-based, so you cannot embed a database query in a sticky note. AFFiNE tries to combine both. The trade-off is that AFFiNE may not match the polish of either. Notion has years of database features; Miro has years of drawing tools. AFFiNE is younger, and the canary release cadence suggests it is still maturing. The README acknowledges inspiration from Quip, Trello, Airtable, and Miro, but it does not claim feature parity. For a team that needs both docs and whiteboards, AFFiNE could replace two tools. For a team that needs deep database functionality or advanced diagramming, it may fall short. The plugin system is coming soon, which means you cannot extend it yet. That is a concrete limitation.

Maintenance, Licensing, and Upgrade Cost

The repository is actively maintained, with release dates in August 2026, and the last push is the same day as the latest release. The default branch is canary, which means the project treats the latest code as a preview. This has implications for upgrade cost: you may need to track canary releases frequently, and breaking changes are possible. The README does not state a license, which is a red flag for open-source adoption. Without a license, you cannot legally use, modify, or distribute the code, even though it is public. The README says open-source, but the license field in the repository metadata is unknown. That is a serious gap. You should contact the maintainers or check the repository files for a LICENSE file before using it in production. The Contributor License Agreement is another legal layer. For contributors, the CLA is mandatory, and pull requests cannot be merged until it is signed. That is a standard practice, but it adds friction. The upgrade cost is not documented, but the canary naming suggests you should expect frequent updates. The README does not discuss migration from Notion or Miro, so plan for manual data transfer.

Editorial conclusion

Adopt AFFiNE if you need a local-first, self-hostable workspace that combines block-based documents with an edgeless canvas, and you are comfortable with a fast-moving canary release cycle. Do not adopt it if you require a stable production release, a mature plugin ecosystem, or if you cannot sign a Contributor License Agreement when contributing code. Before adoption, verify the current state of self-hosting documentation, the stability of the canary builds, and whether the AI features meet your privacy expectations.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes