之前我介绍过 Fast Note Sync,这是一款开源的 Obsidian 笔记同步方案,可以实现多设备之间的笔记同步和实时协作。Fast Note Sync 的优势在于完全开源、数据自主可控,但它有一个门槛——你需要自己搭建和维护服务器。对于有技术背景并且享受折腾的朋友来说这不是问题,但如果你不想操心服务器的事情,或者团队里有非技术背景的成员,那么一个开箱即用的托管服务可能是更好的选择。这就是我今天要介绍的 screen.garden,一个为 Obsidian 设计的付费实时协作服务。

用 Obsidian 做笔记这么多年,我一直有一个小遗憾:它的协作能力实在太弱了。每次需要和朋友或同事一起编辑文档时,我都得打开 Google Docs 或者 Notion,然后在心里默默叹气——为什么我不能在自己熟悉的 Obsidian 里完成这件事呢?Obsidian Sync 虽然好用,但它只是同步,不是协作,你没办法看到别人正在编辑什么,更别提像 Google Docs 那样看到对方的光标在屏幕上移动了。screen.garden 的出现,让这个问题终于有了一个让我满意的解决方案。

Obsidian 协作的困境

如果你也是 Obsidian 的重度用户,应该能理解这种感受。Obsidian 最吸引人的地方在于它把所有笔记都存成本地的 Markdown 文件,你拥有完整的数据控制权,不用担心哪天服务商跑路导致数据丢失。但这种设计也带来了一个天然的问题:本地文件和实时协作之间存在着难以调和的矛盾。传统的同步服务,无论是 iCloud、OneDrive 还是官方的 Obsidian Sync,都是基于文件级别的同步,当两个人同时编辑同一个文件时,冲突几乎是不可避免的,最后你可能会看到一堆叫做「笔记-冲突副本」的文件散落在文件夹里,这种体验实在是太糟糕了。

我之前尝试过各种变通方案,比如用 Git 来管理笔记,但这对非技术背景的协作者来说门槛太高;也试过把需要协作的内容单独放到 Notion 里,但这样就破坏了我在 Obsidian 里建立的知识网络,那些双向链接变得毫无意义。我甚至想过用 HackMD 或者 HedgeDoc 这样的在线 Markdown 编辑器作为中间层,但来回复制粘贴实在太麻烦,而且格式兼容性也是个问题。这些方案要么太复杂,要么体验太割裂,都不是我想要的答案。

screen.garden 是什么

screen.garden 的出现让我眼前一亮。简单来说,它是一个「Web 服务 + Obsidian 插件」的组合,通过特殊的同步算法实现了在本地 Markdown 文件上进行实时协作编辑,你可以看到协作者的光标位置,看到他们正在输入什么,就像在 Google Docs 里一样,但所有的文件仍然以 Markdown 格式保存在你的本地磁盘上。这种设计既保留了 Obsidian 的核心优势——数据本地化和 Markdown 格式,又补齐了它最大的短板——实时协作能力。

screen.garden 的基本共享单位叫做 Collection,你可以把它理解为一个可以共享的文件夹。在你的 Obsidian vault 里创建一个 Collection 之后,就可以邀请其他人一起编辑里面的笔记了。这种设计很巧妙,因为你可以在同一个 vault 里同时拥有私人笔记和共享笔记,私人笔记可以通过双向链接引用共享笔记里的内容,而不用担心隐私泄露。比如我自己有一个「项目文档」的 Collection 和团队共享,同时还有一个「个人日记」的文件夹完全私密,两者可以相互引用但互不干扰,这正是我一直想要的工作方式。

核心功能体验

实际使用下来,screen.garden 给我印象最深的是它的实时协作体验。当你和别人同时编辑一篇笔记时,你能看到对方光标的位置,光标旁边会显示协作者的名字,而且对方输入的内容会实时出现在你的屏幕上,完全没有延迟感。更贴心的是,插件会在侧边栏显示当前有哪些团队成员在线,以及他们正在编辑哪篇笔记,你可以一键跳转到他们正在编辑的位置,这在讨论文档的时候特别有用,省去了「你在哪一行」「我说的是第三段」这种低效的沟通。

最让我惊喜的是 Canvas 协作功能。Obsidian 的 Canvas 是一个无限画布,可以用来做思维导图、流程图或者把笔记卡片可视化排列,但在 screen.garden 之前,这个功能完全无法协作。现在你可以和团队成员一起在同一个 Canvas 上移动卡片、画连接线、添加注释,每个人的光标都是可见的,这种体验用来做头脑风暴或者项目规划简直太棒了。我和朋友试着用它来规划一个小项目的架构,两个人在 Canvas 上同时操作,实时看到对方的想法,比传统的「你画完发给我看看」的方式高效了不知道多少倍。

screen.garden 还有一个 Web 编辑器,让你可以在没有安装 Obsidian 的设备上通过浏览器访问和编辑笔记。这个 Web 编辑器的设计很克制,官方说法是「故意保持简单」,因为它不是要取代 Obsidian,而是提供一个轻量级的访问入口。实际体验下来,用来快速查看笔记或者做一些简单的修改完全够用,但如果要深度编辑,还是回到 Obsidian 里更舒服。另外值得一提的是分享功能,你可以生成一个只读链接把笔记分享给没有 screen.garden 账号的人,还可以设置密码保护,这在需要把文档发给外部合作方查看的时候很方便。

技术实现与使用注意

从技术角度来说,screen.garden 应该是使用了类似 CRDT(Conflict-free Replicated Data Type)的算法来实现无冲突同步。这种算法的核心思想是把每个编辑操作都设计成可以自动合并的形式,无论操作以什么顺序到达,最终都能得到一致的结果。Yjs 是这个领域最流行的开源实现,很多实时协作应用都基于它来构建,虽然 screen.garden 没有明确说明技术细节,但从使用体验来看应该是采用了类似的方案。这也解释了为什么它能做到真正的「无冲突」——这不是靠锁定或者覆盖,而是从算法层面就避免了冲突的产生。

安全性方面,screen.garden 表示所有连接都使用加密传输,数据在服务器上也是加密存储的。不过他们在 FAQ 里特别强调了一点:screen.garden 不是备份服务,你仍然需要自己做好 vault 的备份。这个态度我很欣赏,因为太多服务喜欢把自己包装成「全能方案」,最后反而让用户放松警惕。另外一个重要的注意事项是,如果你已经在用 iCloud、OneDrive 或者 Obsidian Sync 来同步你的 vault,千万不要把同一个文件夹同时交给两个同步服务管理,这几乎必然会导致数据损坏。正确的做法是把 screen.garden 管理的 Collection 文件夹排除在其他同步服务之外。

定价与适用场景

screen.garden 的定价相当简单:基础套餐 4 美元一个月,包含最多 3 个人使用,之后每增加一个人每月加 2 美元,年付的话可以免费多用一个月。和 Obsidian Sync 对比一下,后者是每人每月 4 美元(按年付是每月约 8 美元),如果团队有 3 个人,用 Obsidian Sync 需要 12 美元/月,而 screen.garden 只要 4 美元/月,而且 screen.garden 还提供了 Obsidian Sync 没有的实时协作功能。当然这个比较不完全公平,因为 Obsidian Sync 可以同步整个 vault 的所有内容,而 screen.garden 的同步是以 Collection 为单位的,但对于「需要协作」这个特定场景来说,screen.garden 的性价比显然更高。

至于适用场景,我觉得 screen.garden 特别适合这几类人:第一是小型团队,需要一起维护项目文档或者知识库,但又不想放弃 Obsidian 和 Markdown 的优势;第二是远程协作者,比如分布在不同地方的写作搭档或者研究小组,需要实时看到对方在写什么;第三是自由职业者或者独立开发者,需要和客户共享某些文档但又想保持对数据的控制权。对于纯个人用户来说,如果你只是需要多设备同步,官方的 Obsidian Sync 或者 Syncthing 这样的免费方案可能是更经济的选择;但如果你有任何协作需求,screen.garden 目前几乎是唯一的选择。

最后

体验了一段时间之后,我觉得 screen.garden 填补了 Obsidian 生态里一个很重要的空白。它没有试图把 Obsidian 变成另一个 Notion 或者 Google Docs,而是在保持 Obsidian 核心优势的前提下,巧妙地加入了实时协作能力。这种设计思路我很认可——不是什么都要自己做,而是把擅长的部分做到极致,然后和其他工具良好配合。官方在 FAQ 里提到未来计划支持 Roam Research 和 Logseq 等其他 PKM 工具,如果真能实现,那就太有意思了,意味着你和使用不同笔记工具的朋友也能一起协作。

当然,screen.garden 也不是没有缺点。作为一个相对年轻的服务,它的插件下载量目前只有 6000 多,社区生态还在建设中,遇到问题时能找到的参考资料比较有限。另外它的 Web 编辑器功能还比较基础,如果你期待一个功能完整的 Web 版 Obsidian,可能会有些失望。但总体来说,对于有实时协作需求的 Obsidian 用户,我觉得它绝对值得一试。毕竟每月 4 美元的价格不算高,还有一周的免费试用期,试试看它能不能解决你的痛点,总比继续在 Obsidian 和其他协作工具之间来回切换要强。