Drawnix 综述:一块画布装下思维导图、流程图和自由画,以及 20 个同类开源项目全景
14,884 star、1,286 fork、MIT 许可、纯 TypeScript —— 这是国内研发管理厂商 PingCode(原 Worktile)开源的 Drawnix。它的自我介绍只有一句话:开源白板工具,一体化白板,包含思维导图、流程图、自由画等。
打开官网 drawnix.com 就是一块空白画布,没有注册墙、没有「新建文档」这一步,页面上一行小字写着:所有数据被存在你的浏览器本地。
但它在开源白板这个赛道里,站位其实挺特别的:Excalidraw 靠手绘审美拿下 13 万 star,tldraw 走 SDK 路线让开发者自己造产品,draw.io 深耕专业流程图 —— Drawnix 选了第三条路:把「结构化图形」当主角,思维导图、流程图、自由画笔共用一个无限画布。
本文除了讲清它是什么,还会给出一份 20 个同类开源项目的全景图,并在文末纠正两个在中文技术圈流传很广、但经不起核实的说法。
一、先看一手数据
以下均于 2026 年 10 月 4 日通过 GitHub 官方接口查询:
- 仓库:plait-board/drawnix,所属组织 plait-board(注册地中国,2022-02-07 创建,共 9 个公开仓库)
- 许可:MIT(LICENSE 原文为
Copyright (c) 2024 Drawnix),可自由用于商业项目 - 星标:14,884 star / 1,286 fork / 56 watcher,2024-06-04 建仓,默认分支是
develop(不是 main,这一点查接口时容易踩坑) - 技术:主语言 TypeScript(源码约 43.3 万字节),另有 SCSS 4.9 万、HTML 7 千余字节;源码目录共 233 个文件
- 社区:未关闭 issue 约 30 个、已关闭 194 个、累计 PR 233 个;贡献者 20 人
- 发布:GitHub Release 只有 2 个 —— v0.4.0(2026-04-19)与 v0.3.0(2025-09-14);但 CHANGELOG 里记录了 23 个版本,最早可追溯到 0.0.1(2025-03-10)
- 官网/在线版:drawnix.com;自托管:
docker pull pubuzhixing/drawnix:latest
有一个细节值得单独拎出来:仓库里有 15 个 tag,但只有 2 个 Release。其中 v0.4.1(2026-04-21 打的 tag,附言就只有「release」两个字)既没有对应的 Release 条目,CHANGELOG 里也查不到它。打了标签却没说清发了什么,这属于工程流程上的小瑕疵,不影响使用,但对想追踪版本的人来说是个信息空洞。
二、它想解决的问题:为什么要挤在一块画布上
画一张系统架构图,很多人真实的工作流是这样的:思维导图在 A 工具,流程图在 B 工具,随手画个草图再打开 C 工具 —— 三份数据三个文件,改一处要同步三遍,最后要放进文档时还得各自导出再拼。
Drawnix 的赌注是:这三件事本来就该发生在同一块画布上。所以在它这里,思维导图的一个节点、流程图的一个方框、自由画笔的一根线条,是同一个画布上的同级元素,可以互相连线、一起框选、一起导出。
这不是它独有的想法(draw.io 和 Whimsical 也在做融合),但它的取舍很明确:相比「画得好看」,「画得有条理」更重要。Excalidraw 的核心竞争力是那种手绘的松弛感,Drawnix 的重心则放在节点式的结构、图元之间的连接关系、自动布局这些地方 —— 手绘质感只是它借来的外衣(它和 Excalidraw 一样,都用 roughjs 渲染手绘线条)。
三、它是怎么做的:插件架构不是噱头
Drawnix 底层是一套叫 Plait 的画图框架,由同一家公司开源(仓库地址 worktile/plait,MIT 许可)。README 里写得很坦白:「Plait 是我司开源的一款画图框架,代表着公司在知识库产品(PingCode Wiki)上的重要技术沉淀。」
换句话说,Drawnix 是这套框架的官方示范应用 —— 框架是从公司产品里抽出来的,Drawnix 是它对外最完整的落地案例。
从依赖清单(package.json)能直接看出分层:
- @plait/core、@plait/mind、@plait/draw、@plait/layouts —— 画图内核、思维导图插件、图形绘制插件、布局算法,版本 ^0.94.0
- slate / slate-react ^0.116.0 —— 富文本编辑,负责画布内所有文字输入
- roughjs ^4.6.6 —— 手绘风格线条渲染
- localforage —— 浏览器本地存储(这就是「数据只在你浏览器里」的实现方式)
- laser-pen ^1.0.1 —— 演示用的激光笔
- React 19.2.0 + Nx 22.6.5 + Vite 8 + TypeScript 6.0 —— 构建体系
插件化的好处在 Drawnix 自己的 src/plugins/ 目录里体现得很清楚:自由画(freehand)是一整套独立模块(创建、擦除、碎片合并、曲线平滑各自成文件),此外还有快捷键、铅笔、双指缩放、文本、工具状态同步等独立插件。README 强调这套架构能适配不同 UI 框架(Angular 也在规划内)、也能换掉富文本层 —— 代价是代码结构比同类工具复杂,二次开发的上手门槛更高。
四、实际能用出来的功能
按 v0.4.0 的发布说明和当前 develop 分支的代码,能确认的能力有这么几类:
- 画什么:思维导图(节点自动布局)、流程图(图形 + 连线 + 箭头标记)、自由画笔(有预设颜色与粗细)、文本、图片、便签形状(含左右花括号)
- 怎么导入:Mermaid 语法转流程图、Markdown 文本转思维导图 —— 这两个是它最有辨识度的功能,官方分别做成了独立 npm 包(
@plait-board/mermaid-to-drawnix、@plait-board/markdown-to-drawnix) - 怎么导出:PNG、JPG、SVG、以及自有格式
.drawnix(JSON);v0.4.0 新增了复制为 SVG/PNG 到剪贴板 - 编辑体验:无限画布缩放滚动、撤销重做、右键菜单、字体大小调整、明暗主题、移动端适配、i18n(社区贡献了英、俄、阿拉伯、越南语等语言包)
- 演示:激光笔(依赖里有
laser-pen,属于 v0.4.0 之后develop分支上的新增能力)
顺带说明一个中文资料里常见的错误:有几篇转载把「激光笔」写进了 v0.4.0 的更新内容。查 CHANGELOG 原文,v0.4.0 的新增是「复制到剪贴板、画笔预设、花括号便签、自定义字号、主题色保存加载、工具栏 More Options 菜单」六项,激光笔并不在其中 —— 它出现在 develop 分支的依赖里,属于更新但尚未进 release notes 的功能。
五、核实到的四个边界
这一节是本文最有价值的部分。star 数和功能清单都是好查的,真正影响你是否该选它的是下面这几件事。
边界一:协作这件事,官方承诺了三次,一年半过去仍未落地
这是所有评估都会被问到的第一个问题。我在仓库里把相关讨论全部翻了一遍,时间线是这样的:
- 2025-04-18(issue #131):有用户问能否支持类似 Excalidraw、tldraw 的链接分享与协作。维护者 pubuzhixing8 回复:「这个计划会在开源版本中包含(可能会在下半年,上半年还有几个基础功能),应该会考虑基于 Yjs 的协同方案,最终实现的 Yjs 协同 Provider 是 WebSocket 的中心服务还是基于 WebRTC 的 P2P 服务需要进一步研究下。」
- 2025-08-10(issue #199):回答「是否会考虑加入多人协同」时说:「后续会考虑增加,但是可能要稍微等等,在 25 年底或者 26 早些时候。」
- 2025 年内(issue #143):回答协同编辑的规划时说:「下一个阶段就会考虑协同模块。」
- 2026-07-22(issue #162 关闭时):这份由维护者自己维护的 Roadmap 里,「支持协同」这一项仍然是未勾选状态 —— 与它一起未勾选的还有「部分插件独立成 npm 包」「AI 输出探索」「正式发布 Dawn(破晓)版本」。
现在已经是 2026 年 10 月。我搜遍当前 develop 分支的文件树和全部依赖,没有 Yjs、没有任何 WebSocket/socket 库、没有协作或房间相关的模块;官网首页明确写着「所有数据被存在你的浏览器本地」。结论很明确:Drawnix 目前是单机本地应用,协作功能一行代码都还没有。
更能说明问题的是另一件事:社区自己动手做了,但没被合并。 2026 年 2 月,有贡献者提交了一个「Backend」PR(#372),加上了后端、账号体系和白板分享发布功能,维护者还在本地跑通并贴了截图,有用户留言「后端的加入特别牛逼,啥时候正式发布?」。但这个 PR 在 2026-02-25 被关闭 —— 另一位维护者给出的理由是:「我们期望上会希望能够确保代码的品质,所以我们会经过严谨的审核」,并指出 PR 里有疑似 LLM 生成的多余文件。
对你的意义:如果你需要多人同时编辑一块白板,Drawnix 现在不能选,而且从路线图的推进节奏看,短期也别等。这条不是差评 —— 它的定位本来就是 local-first 的个人工具,只是「协作」标签不该被误读。
边界二:发版节奏在放缓
把时间轴拉直看:v0.3.0 是 2025-09-14,v0.4.0 是 2026-04-19,距今约 5 个半月没有新 Release。开发分支最后两次提交停在 2026-09-07(主要是测试相关的基础设施改动,如 vitest 配置、共享测试夹具)。
项目没有死 —— 2026-10-03 还有 issue 活动和 PR 提交讨论,但从「高频发版」转成了「低频维护 + 社区小步贡献」。README 里那句「近期会高频迭代 drawnix.com,直到发布 Dawn(破晓)版本」写在建仓早期,而 Roadmap 上「正式发布 Dawn」至今未勾选。做技术选型时,这个节奏差异要算进去。
边界三:巴士系数是 1
20 位贡献者合计的提交里,核心维护者 pubuzhixing8 一个人贡献了 245 次提交 —— 占绝对多数。其余贡献者多在个位数到二十几次之间,其中不少是语言包、橡皮擦这类单点功能。
这是典型的「个人主导型开源项目」。它不是坏事(Drawnix 和 Plait 都出自这位维护者在公司产品中的技术沉淀),但意味着一旦这位维护者转移精力,项目很可能迅速减速。好消息是 MIT 许可 + 纯前端 + 无后端依赖,即使上游停更,你已经部署的那份也能一直用下去,这一点比依赖云服务的工具安全得多。
边界四:底层框架 Plait 几乎只有 Drawnix 在用
这个观察靠 npm 下载量就能验证(2026-10-04 查询,近 30 天):
@plait/core:6,231 次/月@plait/mind:5,676 次/月;@plait/draw:5,595 次/月- 对照组:
@excalidraw/excalidraw2,399,436 次/月,tldraw1,682,064 次/月
也就是说,Plait 的下载量不到 tldraw 的 1/260。「Drawnix 是一套被广泛采用的框架的旗舰应用」这个说法不成立 —— 实际情形反过来了:产品(14,884 star)比框架(Plait 仓库 694 star)受欢迎得多,框架目前基本是 Drawnix 自己在用。
这不影响你用 Drawnix,但会影响一个决策:如果你打算基于 Plait 二次开发自己的白板,你几乎是在独自探索一条没有社区同伴的路 —— 遇到问题时可搜的资料和现成答案都会很有限。相比之下,基于 tldraw SDK 或 Excalidraw 的 npm 包做集成,可参考的案例要丰富得多。
六、顺手纠正两个流传很广的说法
纠正一:tldraw 不是「开源软件」
中文圈里几乎所有白板工具对比文章,都会把 tldraw 和 Excalidraw 并列称为「开源白板」。查 GitHub 接口,tldraw 的许可字段返回的是 NOASSERTION(无法识别为标准开源许可)—— 打开 LICENSE 原文,第一行写的是:
# tldraw license
This License from tldraw, Inc. governs your use of the accompanying Software... Alternative licenses are available from tldraw for commercial and non-commercial use.
这是厂商自拟的许可协议,属于「源码可见(source-available)」,而不是 OSI 认可的开源许可。差别是实质性的:MIT/Apache 之下你可以随意商用、修改、再分发;而 tldraw 的商业使用需要向 tldraw 公司另行获取授权。
同样需要留意的还有 AFFiNE(73,210 star):它并非单一许可,LICENSE 里明确写着 packages/backend 和 packages/common/native 目录适用另一套协议(见该目录下的 LICENSE),其余部分是 MIT。看到「开源」两个字就假定全仓库一个许可,是企业使用时最容易踩的坑,尤其是准备做二次分发的时候。
纠正二:「Excalidraw 开源版没有协作」这句话只对一半
这个说法源头就是 Drawnix 的 issue #131 里提问者的原话,听起来很有道理,但需要拆成两层看。Excalidraw 官方 README 把边界写得很清楚:
- npm 包
@excalidraw/excalidraw(给开发者集成用的那一层):功能清单里没有协作,导出、无限画布、手绘风格、图形库、国际化都在,但没有实时协同。官方对此有一句承诺:「We'll be adding these features as drop-in plugins for the npm package in the future.」(未来会把这些能力作为即插即用插件加进 npm 包。) - excalidraw.com 那个应用本身(源码就在同一个仓库的
excalidraw-app/目录下):含实时协作、端到端加密、可分享只读链接、离线 PWA,而且这份源码是公开的,理论上你能自己部署。
所以准确的说法是:Excalidraw 把「完整应用含协作」和「npm 包不含协作」分成了两层 —— 自己部署整套应用可以获得协作,但要一并搭起 Firebase 和协作服务;而只想集成一个编辑器进自己产品的开发者,拿到的是没有协同的那一层。这个区别对技术选型的影响,比一句「开源版没有协作」精确得多。
七、同类项目全景:20 个开源项目,按「负责哪一段」分类
下面这些数字同样于 2026 年 10 月 4 日通过 GitHub 官方接口逐一查询。我按它们在画图这件事上负责的环节分成五类 —— 这个分法比按 star 排序有用得多,因为不同类别之间根本不是替代关系。
第一类:通用无限画布白板(Drawnix 的主战场)
- Excalidraw(excalidraw/excalidraw)—— 133,460 star,MIT,TypeScript,2020-01 建仓。这个赛道的绝对王者,「手绘风白板」的代名词,生态最厚(VS Code 插件 802 star、Mermaid 转换器 897 star)。协作能力的分层情况见上文。
- tldraw(tldraw/tldraw)—— 50,730 star,自拟许可(非开源),TypeScript。定位是「用 React 构建无限画布应用的 SDK」,面向开发者而非终端用户。npm 月下载 168 万,说明开发者采用度很高。商用需另行授权。
- AFFiNE(toeverything/AFFiNE)—— 73,210 star,混合许可,TypeScript。自我定位是「Notion + Miro 的合体」,文档与白板一体,协作是它的核心能力之一。
- Penpot(penpot/penpot)—— 60,661 star,MPL-2.0,Clojure 编写。严格说它是开源设计工具(Figma 的开源替代),不是白板,但它是「开源协作式视觉工具的完整自托管方案」这个方向上最成熟的参照物。
- draw.io(jgraph/drawio)—— 8,547 star,Apache-2.0,JavaScript。star 数明显偏低,原因是它的主战场不在 GitHub(官网 app.diagrams.net 和桌面版另有分发渠道)。它的强项是专业流程图与图表,企业集成版本(Confluence/Jira 插件)是商业产品。
第二类:思维导图 / 结构化图形专用
这类工具只做一件事,但做得比一体化工具深 —— 如果你的需求就是画导图,它们通常比 Drawnix 更直接。
- markmap(markmap/markmap)—— 13,144 star,MIT。「用纯文本构建思维导图」,把 Markdown 直接渲染成可交互的导图。和 Drawnix 的「Markdown 转导图」是同一件事,但它是专精且可嵌入的。
- SimpleMindMap(wanglin2/mind-map)—— 12,786 star,MIT,JavaScript。中文社区最活跃的开源思维导图库,功能完整度高,可当组件嵌入自己的项目。
- jsMind(hizzgdev/jsmind)—— 3,793 star,BSD 风格许可,JavaScript。2012 年就开始的老牌导图库,胜在轻量与稳定。
- Mind Elixir(SSShooter/mind-elixir-core)—— 3,172 star,MIT,TypeScript。框架无关的现代化导图内核,适合当积木用。
第三类:用文本或代码画图(不是画布,是 DSL)
这类工具和 Drawnix 不冲突,反而常配合使用 —— 先用它们把图定义成代码,再导入画布微调。Drawnix 内置 Mermaid 导入,正是承认了这条路径。
- Mermaid(mermaid-js/mermaid)—— 90,524 star,MIT,TypeScript。事实标准,Markdown 文档里写流程图、时序图全靠它。
- D2(d2lang/d2)—— 25,560 star,MPL-2.0,Go。注意:它的旧地址
terrastruct/d2已失效并重定向到这个新组织。定位是「现代化图表脚本语言」,输出质量在同类里口碑很好。 - PlantUML(plantuml/plantuml)—— 13,351 star,LGPL-3.0,Java。UML 建模领域的常青树,2010 年至今持续维护。
- drawdb(drawdb-io/drawdb)—— 39,827 star,AGPL-3.0,JavaScript。专注数据库 ER 图并直接生成 SQL,如果你画的是表结构,它比通用白板专业得多。注意 AGPL 对二次分发的传染性。
第四类:手写墨迹笔记(本地软件,不是网页)
- Xournal++(xournalpp/xournalpp)—— 15,473 star,GPL-2.0,C++。手写笔记 + PDF 批注,触控笔设备上的经典选择,跨 Windows/macOS/Linux。
- Rnote(flxzt/rnote)—— 11,726 star,GPL-3.0,Rust。新一代手写笔记软件,用 Rust + GTK 写成,界面和性能口碑都不错。
这两者和 Drawnix 的场景差异很大(一个用笔、一个用鼠标键盘),但如果你的真实需求是「在平板上做手写批注」,别指望网页白板能替代它们。
第五类:底层画布框架(自己造轮子的起点)
- Fabric.js(fabricjs/fabric.js)—— 31,465 star,MIT,TypeScript。Canvas 操作与 SVG 互转的老牌库,2010 年至今在用。
- rough.js(rough-stuff/rough)—— 21,225 star,MIT。画「手绘感」图形的库,Excalidraw 和 Drawnix 的手绘线条都出自它。但要留意:它的最后一次推送是 2024-07-28,此后没有更新。
- Konva(konvajs/konva)—— 14,846 star,MIT,TypeScript。面向交互式 2D 图形的 Canvas 框架,做复杂编辑器时比裸 Canvas 省事很多。
- Plait(worktile/plait)—— 694 star,MIT,TypeScript。就是 Drawnix 用的那一套,从 PingCode Wiki 里抽出来的。功能定位(思维导图 + 流程图 + 自由画 + 插件机制)和 Drawnix 高度重合,但社区规模比上面三个小两个数量级。
八、AI 这个变量
画图工具正在被 AI 改写,这一点在数据里有痕迹:
- Drawnix 自己的 Roadmap 里,「AI 输出探索」是一项未勾选的待办 —— 官方还没动手。
- Excalidraw 已经出了官方的 MCP 组件(excalidraw/excalidraw-mcp,5,441 star,2026-02-04 建仓),让 AI Agent 可以直接操作 Excalidraw 画布。不过它最后一次推送停在 2026-03-24,半年没动。
就现状而言,Drawnix 跟 AI 结合最现实的路径不是等官方,而是它已有的两个导入功能:让 AI 生成 Mermaid 或 Markdown 文本,再丢进 Drawnix 转成流程图和思维导图 —— 这条路今天就能走通,成本几乎为零。考虑到 Mermaid 本身有 9 万 star 的生态,这条路的上游供给非常充足。
九、到底该选哪个
把上面的信息收敛成几个判断:
- 你只是想要一块免费、能离线、数据不上传的白板,而且经常要在导图和流程图之间切换 → Drawnix 很合适。打开网站就能用,也可以 Docker 自托管到内网;MIT 许可,没有商用限制。
- 你要的是「画得好看、随手画」的那块白板 → Excalidraw 更对味,生态和成熟度都高一档。
- 你要多人实时协作 → Drawnix 出局(目前一行协作代码都没有);自建 Excalidraw 完整应用、或考虑 AFFiNE;tldraw 的协作是商业服务,需评估授权成本。
- 你打算做白板类产品的二次开发 → 优先评估 tldraw SDK 或 Excalidraw npm 包。基于 Plait 意味着几乎没有同路人(月下载 6 千),文档和答案都得自己趟。
- 你的图其实是数据库表结构 / 数据库设计 → drawdb 更专业。
- 你要的是平板手写批注 → Xournal++ 或 Rnote,别用网页白板硬凑。
十、结语
Drawnix 是一个定位清晰、完成度不错、但边界也很清楚的项目。它把「思维导图 + 流程图 + 自由画共用一个画布」这件事做得比 Excalidraw 顺手,数据默认只存在本地浏览器也符合不少人对隐私和可控性的要求。
但它同时也告诉我们三件事:star 数不等于能力边界(1.4 万 star,协作功能为零);「开源」这个词需要拆开看(同一个赛道里,tldraw 是自拟许可、AFFiNE 是混合许可、Drawnix 和 Excalidraw 是 MIT);框架和产品的受欢迎程度可以倒挂(14,884 star 的产品,站在 694 star 的框架上)。
至于那个还没公布的 Dawn(破晓)版本 —— 名字取自凤凰浴火重生的意象,也是 Roadmap 上最后一项未勾选的待办。它会不会把协作一起带来,值得继续盯着。
本文所有 star、fork、许可、发布与下载量数据,均于 2026 年 10 月 4 日通过 GitHub、npm 官方接口逐一查询核对;issue 引用均来自仓库内维护者公开回复原文。

