MindNotes Pro 的本地优先取舍
这不是一篇“替代谁”的宣言。Excalidraw、tldraw 这类项目把浏览器白板做到了很高的水准,MindNotes Pro 的目标更窄:在一个普通浏览器里,尽量快地打开、离线地写画、清楚地导出,并且让实现保持可读。
为什么要做一个范围更小的白板
我经常需要的是临时画思路、整理截图、写几行文字,然后把结果导出。这个场景不一定需要账户、多人协作、模板市场或云端同步。它更像纸笔:打开,写,保存,关掉。
所以 MindNotes Pro 的边界从一开始就很朴素:
- 数据默认留在本地浏览器。
- 核心绘图体验不依赖外部 CDN。
- 功能优先服务单人笔记和轻量白板。
- 不把没有实现的协作、账号、后端能力写进卖点。
依赖数量不是奖牌,它只是约束
早期 README 里过度强调“少依赖”,这很容易变成一种营销话术。更准确的说法是:我用较小的依赖面来限制复杂度,但这不是为了证明别人做得重,而是为了让这个项目更容易维护。
| 选择 | 带来的好处 | 付出的代价 |
|---|---|---|
| React + Canvas | UI 和绘图状态容易组织 | 需要认真处理重绘、选择框和历史记录 |
| Zustand | 状态模型直接、调试成本低 | store 变大后必须拆分职责 |
| 本地导出 | 用户不需要上传数据 | 浏览器兼容和格式细节都要自己兜底 |
| 无云协作 | 实现和隐私模型更简单 | 团队实时编辑不是当前目标 |
向成熟工具学习,但把归因讲清楚
白板软件有很多已经被验证过的交互模式:快速缩放、样式复制、框选、对齐、键盘快捷键。学习这些模式并不丢人,真正危险的是把学习包装成原创。
现在项目文档会更明确地说明:MindNotes Pro 参考了 Figma、Excalidraw、tldraw 等工具的通用交互经验,同时只维护自己实际实现和测试过的功能。外部项目的具体 PR、issue 或设计细节不再被当作宣传材料。
一个开源项目可以受启发,但不能靠模糊归因来显得更专业。
接下来的维护重点
比起继续堆功能,我更想先补几件基础工作:
- 清理现有测试失败,把 canvas、history、selection 的回归用例稳定下来。
- 把导出、快捷键、选择引擎这类高风险路径补成更小的测试单元。
- 减少 README 里不可验证或容易过期的数字。
- 继续把贡献指南、路线图和安全说明写得像一个真实维护中的仓库。
这个项目适合谁
如果你需要一个单人使用、离线优先、可以直接打开写画的浏览器白板,MindNotes Pro 可能合适。如果你需要多人实时协作、复杂素材库、企业权限或长期云端存储,成熟白板产品会更合适。
把适用场景说清楚,通常比把口号喊得更响更有用。
项目入口