Excalidraw:一款悄然征服远程协作的开源白板工具

GitHub May 2026
⭐ 122367📈 +3086
来源:GitHub归档:May 2026
Excalidraw,这款以手绘风格著称的免费开源虚拟白板,已悄然在 GitHub 上收获超过 12.2 万颗星,成为远程团队的标配工具。本文将从技术决策、社区动态和市场力量三个维度,深度剖析其异军突起背后的原因。

Excalidraw 不仅仅是一款图表绘制工具,它更是一个经典案例,展示了简洁与开放如何颠覆一个由昂贵、功能臃肿的巨头所主导的市场。该项目由 Facebook 工程师 Vjeux 等人于 2020 年发起,如今已在 GitHub 上累计超过 12.2 万颗星,每天新增近 3000 名关注者。其核心吸引力在于刻意精简的功能集:一个干净、无限延伸的画布;一种能降低用户心理门槛的手绘线条风格;以及从一开始就内置的实时协作功能。与 Miro 或 FigJam 不同,Excalidraw 完全免费、支持自托管,并采用 MIT 开源协议。这使得它成为工程师绘制架构图、产品经理勾画线框图以及教育工作者制作教学材料的默认选择。

技术深度解析

Excalidraw 的技术架构堪称“少即是多”的典范。其核心是一个基于 HTML5 Canvas API 构建的自定义渲染引擎的单页 React 应用。选择 Canvas 而非 SVG 或基于 DOM 的渲染是经过深思熟虑的:对于白板应用所需的高度交互、频繁重绘的操作——如缩放、平移和同时拖拽数十个元素——Canvas 能提供更优越的性能。开发团队通过实现“脏矩形”渲染策略来优化性能,即只重绘画布上发生变化的部分,而非整个场景。这使得即使在低端设备上也能保持高帧率。

在状态管理方面,Excalidraw 使用基于 zustand(一个轻量级的 React 状态管理库)构建的集中式存储。每一个操作——添加一个矩形、移动一张便签、更改笔触颜色——都会触发一个单一的动作,以不可变的方式更新存储。这种设计使得撤销/重做功能变得非常简单(应用维护了一个先前状态的栈),并使得实时协作能够无缝工作:每个远程操作都通过 WebSocket 或 Firebase Realtime Database 作为本地状态变更来应用。

其手绘风格是通过巧妙结合三次贝塞尔曲线和随机抖动实现的。Excalidraw 的渲染函数不是绘制完美的直线或矩形,而是为控制点添加微小的、伪随机的偏移量。该算法按种子确定,因此同一张图看起来总是一样的,但整体效果却是一种迷人的、不完美的、类似人类手绘的草图。这不仅仅是外观上的考量——认知心理学研究表明,手绘风格的图表比精致的图表更令人难忘,也更不令人生畏,从而鼓励迭代和反馈。

实时协作建立在无冲突复制数据类型(CRDT)模型之上,具体使用了 Yjs 库。Yjs 允许多个用户同时编辑同一个画布,而无需中央服务器来协调每个操作。每个用户都维护一份文档的本地副本,变更通过“最后写入者获胜”的策略来合并冲突编辑。该系统支持存在感知(查看其他用户的光标),并通过仅同步视口区域来实现大型画布的懒加载。其结果是,即使有数十个并发用户,协作体验也几乎与本地编辑一样流畅。

对于那些希望深入研究的人,整个代码库已在 GitHub 上以 MIT 许可证开源。仓库结构清晰,核心库(`@excalidraw/excalidraw`)与独立应用之间界限分明。该核心库可以嵌入到任何 React 应用中,Obsidian、Notion 以及各种文档平台正是通过这种方式集成了 Excalidraw。该项目还维护着一个不断增长的库和工具集,包括用于程序化生成图表的 `excalidraw-cli` 和用于解析和验证 `.excalidraw` 文件的 `@excalidraw/utils` 包。

数据要点: Canvas 渲染、zustand 状态管理和 Yjs CRDT 的结合,使 Excalidraw 拥有了媲美原生应用的性能表现,同时保持了代码库的可维护性和可扩展性。这一技术基础是其病毒式传播的基石。

关键人物与案例研究

Excalidraw 由 Vjeux(Christopher Chedeau)创建,他是一位前 Facebook 工程师,以在 React Native 和 Prettier 上的工作而闻名。该项目很快吸引了来自广泛社区的贡献,早期的知名采用者包括 React 核心团队,他们将其用于会议演讲和文档。如今,该项目由一小群志愿者维护者维护,并偶尔获得 Vercel 和 Netlify 等公司在托管和 CI/CD 资源方面的赞助。

| 特性 | Excalidraw | Miro | FigJam | tldraw |
|---|---|---|---|---|
| 定价 | 免费(自托管或托管) | 8美元/用户/月(入门版) | 免费(有限制)/ 3美元/用户/月 | 免费(开源) |
| 开源 | 是(MIT) | 否 | 否 | 是(MIT) |
| 可自托管 | 是 | 否 | 否 | 是 |
| 实时协作 | 是(Yjs) | 是 | 是 | 是(Yjs) |
| 手绘风格 | 核心特性 | 否 | 否 | 可选(插件) |
| 可嵌入 | 是(React 组件) | 有限(iframe) | 有限(iframe) | 是(React 组件) |
| GitHub 星数 | 122,000+ | 不适用 | 不适用 | 30,000+ |
| 典型用例 | 快速图表、架构草图 | 头脑风暴、工作坊 | 设计冲刺、线框图 | 白板、绘图 |

数据要点: Excalidraw 的主要竞争优势在于其零成本、开源的性质,以及独特的手绘美学。虽然 Miro 和 FigJam 提供了更丰富的协作功能(如投票、计时器和广泛的模板库),但 Excalidraw 在简洁性、可嵌入性以及完全可审计所带来的信任感上胜出。tldraw 是其最接近的开源竞争对手。

更多来自 GitHub

Obscura:为AI代理与网页抓取重写规则的无头浏览器Obscura,一款从头为AI代理和网页抓取构建的无头浏览器,已席卷开发者社区。其GitHub仓库h4ckf0r0day/obscura在一天内飙升至超过9,777颗星,表明市场对这款声称能解决现有方案性能与复杂性瓶颈的工具抱有极大兴趣。与Flow2API:一个可能颠覆AI服务经济的地下API池Flow2api是一个逆向工程工具,它创建了一个经过管理的用户账户池,以提供对Banana Pro API服务的无限制、负载均衡的访问。通过自动化账户轮换、令牌刷新和请求分发,它有效地绕过了单个账户的速率限制和使用上限。该项目迅速爆红,单日Radicle Contracts:以太坊Gas费如何威胁去中心化Git的未来Radicle Contracts是一次大胆的尝试,旨在将Git的不可篡改性与以太坊的可编程性融合。其智能合约层负责项目注册、贡献者身份认证和代币化治理,将Git仓库转化为链上资产。核心创新在于将Git仓库元数据与以太坊地址绑定,实现无需中查看来源专题页GitHub 已收录 1518 篇文章

时间归档

May 2026409 篇已发布文章

延伸阅读

TREK开源革命:自托管旅行规划如何挑战Notion与Google生态一款名为TREK的专业开源平台正成为复杂旅行规划领域的破局者。它以自托管为核心,提供实时协作、交互式地图和垂直旅行模块,在通用生产力工具主导的市场中,标志着向专业化、隐私优先应用范式的转变。Obscura:为AI代理与网页抓取重写规则的无头浏览器一款名为Obscura的全新开源无头浏览器在GitHub上一日狂揽近万星,以其轻量架构和原生AI代理支持引发轰动。专为网页抓取与动态内容捕获设计,它旨在通过极致效率与开发者体验,挑战Puppeteer和Playwright等老牌玩家。Flow2API:一个可能颠覆AI服务经济的地下API池GitHub上一个名为flow2api的新项目正掀起波澜——它通过一套精密的逆向工程账户池,提供无限制的Banana Pro API访问。负载均衡、自动刷新、缓存机制一应俱全,号称能极大提升自动化效率。但代价是什么?Radicle Contracts:以太坊Gas费如何威胁去中心化Git的未来Radicle Contracts将去中心化Git锚定在以太坊上,通过链上身份绑定仓库元数据,实现无需信任的协作。然而,仅66个GitHub星标和以太坊持续高企的Gas费,让这套基础设施能否突破小众开发者圈层成为疑问。AINews深入调查。这款免费图像工具箱是Google Photos的完美增强版文章介绍了Excalidraw作为一款免费在线白板工具,能够轻松创建注释、流程图和手绘图形,是提升文档表达力的理想选择。

常见问题

GitHub 热点“Excalidraw: The Open-Source Whiteboard That Quietly Won Remote Collaboration”主要讲了什么?

Excalidraw is not just another diagramming tool; it is a case study in how simplicity and openness can disrupt a market dominated by expensive, feature-bloated incumbents. Launched…

这个 GitHub 项目在“Excalidraw vs Miro vs FigJam comparison for remote teams”上为什么会引发关注?

Excalidraw’s technical architecture is a masterclass in doing more with less. At its core, the application is a single-page React application that leverages a custom rendering engine built on top of the HTML5 Canvas API.…

从“How to embed Excalidraw in Notion and Obsidian”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 122367,近一日增长约为 3086,这说明它在开源社区具有较强讨论度和扩散能力。