自托管服务
toeverything/AFFiNE avatar
toeverything/AFFiNE

AFFiNE 评测:把文档和画布揉进同一个本地优先知识库

隐私优先、本地优先的知识库,将文档、白板画布与表格融合进同一工作区,是 Notion 与 Miro 的开源替代方案。

72,623 个 Star5,275 个 ForkTypeScript许可证因项目而异

秒懂

它是什么?
AFFiNE 是一个开源、本地优先的知识库,试图把文档、白板和表格合并到同一套块模型里。本文基于仓库与文档,说明它的机制、上手方式、局限,以及适合谁用。
适合谁用?
AFFiNE 适合那些受够了 Notion 和 Miro 的数据锁定、又需要文档与白板在同一处协作的团队或个人。它不适合只想要传统线性文档、对 AI 功能无需求、且没有精力处理自托管复杂度的用户。
能商用吗?
请先确认。这个仓库使用的许可证不在我们自动归类的范围内,商用前请阅读仓库里的 LICENSE 文件。
还在维护吗?
在维护。仓库在最近一天内有新的提交。
用什么语言写的?
主要是 TypeScript(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它到底解决什么问题

AFFiNE 瞄准的是一个具体痛点:文档工具和白板工具是分开的。你在 Notion 里写文字,在 Miro 里画图,中间靠复制粘贴衔接,信息在转换中丢失。AFFiNE 的答案是把两者合并到一个块模型里。README 明确说,它允许你把任何构建块放到无边界画布上,包括富文本、便签、嵌入网页、多视图数据库、链接页面、形状甚至幻灯片。这个设计不是简单的并列,而是让同一个块既能在文档流里线性排列,也能在画布上自由摆放。对需要同时处理文字和视觉内容的团队来说,这省掉了工具切换的成本。它的目标用户是那些觉得 Notion 缺画布、Miro 缺文档的人,尤其是知识管理、项目规划和演示制作频繁交织的场景。

块模型如何驱动合并

AFFiNE 的架构核心是 BlockSuite,这是它底层的块编辑器框架。README 提到 BlockSuite 是独立项目,AFFiNE 的文档和画布合并正是基于这套块系统。具体机制是:每个内容单元都是块,块可以嵌入文档流,也可以被拖到画布上,位置和层级在两种视图间保持一致。这种设计意味着你在文档里写的段落,可以直接变成画布上的卡片,不需要重新创建。多视图数据库也是块的一种,同一个数据可以切换成表格、看板或列表视图,数据源不变。与 Notion 的数据库类似,但 AFFiNE 把数据库也提升为块,可以放进画布与其他元素混合。这个机制的代价是复杂度,块越多,状态同步的负担越大。文档没有披露底层的数据结构细节,但从仓库布局看,TypeScript 是主语言,前端逻辑集中在 blocksuite 相关目录。

本地优先与协作的平衡

AFFiNE 宣称本地优先,意思是数据默认存在你的磁盘上,不依赖云端。这与 Notion 的云端中心模式形成对比。README 说「你总是拥有自己磁盘上的数据,不管云」。同时它也支持实时同步和跨平台协作,这意味着本地优先并不排斥云端,而是把云作为可选同步层。这个设计对隐私敏感的用户有吸引力,但实现上需要处理本地与远程状态的冲突。文档没有详细说明同步算法,但从 canary 分支频繁发布来看,协作功能仍在快速迭代。实时协作通常需要 CRDT 或类似机制,AFFiNE 没有在 README 里提及具体技术,所以无法确认。对于需要离线编辑、又希望多人协作的团队,这个平衡点值得测试。如果你只想要纯本地单机工具,AFFiNE 可能过重;如果你完全依赖云,它的本地优先反而增加复杂度。

AI 是卖点还是附加项

AFFiNE 集成了多模态 AI 助手,README 列出了几个场景:把大纲变成幻灯片、把文章总结成思维导图、整理任务积压、甚至根据提示词画原型和网页。这些功能通过 AFFiNE AI 提供,有专门的页面和博客介绍。AI 的定位是「随时待命」,但它是内置服务,不是本地模型。对于开源项目,这意味着 AI 功能可能依赖外部 API,自托管时可能无法完全离线使用。文档没有说明 AI 的隐私边界,这是一个需要自行验证的点。AI 的价值在于它把块操作自动化了,比如从文本生成思维导图,这直接受益于块模型,因为生成的节点可以无缝嵌入现有画布。但 AI 不是核心机制,没有它 AFFiNE 的文档和画布合并依然成立。如果你对 AI 功能无感,它不会拖累基础体验。

上手与自托管路径

AFFiNE 提供多种使用方式。官方主页有下载链接,覆盖桌面客户端和 Web 版本,还有 live demo 可以体验。对于开发者,文档提供了自托管指南,地址是 docs.affine.pro/self-host-affine。README 强调你可以自行管理、自托管、fork 和构建自己的 AFFiNE。具体命令没有在 README 里列出,但自托管文档会给出。仓库默认分支是 canary,这意味着开发版本更新频繁,最近一周内就有多个 canary 发布,版本号如 v2026.8.28-canary.1251。如果你想稳定使用,可能需要关注稳定版发布,但 README 没有提到 stable 分支。上手门槛取决于你的需求:普通用户直接下载客户端,团队需要自托管则要准备服务器和数据库。插件系统和第三方块「即将推出」,目前没有公开的插件 API。

许可证与维护成本

仓库的许可证字段显示 unknown,这是一个需要警惕的信号。README 没有明确写出开源许可证类型,只提到贡献者需要签署 CLA,并且 PR 合并前必须通过 license/cla 检查。这意味着代码虽然公开,但使用条款可能有限制。对于企业采用,许可证不明是一个重大风险,你需要联系项目方确认。维护成本方面,canary 分支的发布频率很高,几乎每天都有新版本,这反映了活跃的开发,但也意味着 API 可能不稳定。如果你基于 AFFiNE 做二次开发,需要跟随上游频繁更新。自托管还需要维护数据库和同步服务,文档没有给出具体的资源要求。相比之下,Notion 和 Miro 是托管服务,没有自托管成本,但你也失去了数据控制权。AFFiNE 的维护成本是自托管带来的必然代价。

替代方案与差异

最直接的替代是 Notion 和 Miro,但它们是闭源托管服务,不支持自托管,也没有插件系统。AFFiNE 的差异在于开源和本地优先,以及文档与画布的深度融合。另一个替代是 AppFlowy,它也是开源的 Notion 替代,但更专注于文档和数据库,没有强调画布合并。还有 Logseq,它基于大纲和双向链接,本地优先,但白板功能是后加的,不是核心模型。AFFiNE 的独特之处是把画布作为一等公民,而不是附属功能。如果你需要的是纯白板工具,Miro 的成熟度仍然领先;如果你只需要文档,Notion 的生态更丰富。AFFiNE 试图覆盖两者,但代价是复杂度更高。选择时,你需要评估自己的核心场景是文档还是画布,AFFiNE 只在两者同样重要时才有明显优势。

采用前的验证清单

在决定采用 AFFiNE 之前,有几个具体事项需要验证。第一,许可证类型必须确认,仓库显示 unknown,这是最优先的事项。第二,测试 canary 版本的稳定性,你可以从 live demo 开始,或者自行构建,看是否满足你的可靠性要求。第三,检查自托管文档,确认部署步骤和依赖,文档地址是 docs.affine.pro/self-host-affine。第四,评估 AI 功能的依赖,如果你需要离线 AI,目前没有证据支持。第五,测试本地优先的同步机制,多设备协作是否顺畅,文档没有详细说明,只能通过实际使用判断。AFFiNE 的块模型有潜力,但它的未来取决于社区和贡献者的持续投入。如果你愿意接受 canary 的迭代节奏,它可以成为你的知识库底座;如果你需要稳定不变的 API,现在还不是时候。

编辑结论

AFFiNE 适合那些受够了 Notion 和 Miro 的数据锁定、又需要文档与白板在同一处协作的团队或个人。它不适合只想要传统线性文档、对 AI 功能无需求、且没有精力处理自托管复杂度的用户。采用前,先确认你接受的许可证类型(仓库未明确标注),检查 canary 分支的更新频率是否匹配你的稳定性要求,并验证本地优先的同步机制能否覆盖你的多设备工作流。AFFiNE 的价值在于把块的边界推到了画布上,这个设计值得一试,但它的成熟度取决于你能否容忍持续的 canary 迭代。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记