题记与说明
标题: Local-first software: You own your data, in spite of the cloud
作者: Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, Mark McGranaghan(Ink & Switch)
来源: https://www.inkandswitch.com/essay/local-first/
存档日期: 2026-11-03
标签: [local-first, CRDT, 数据所有权, 分布式系统, 协作软件, 知识管理]
这篇讲什么
2019 年 4 月 Ink & Switch 发表于 Onward! 会议的论文式宣言,后来成为 local-first 运动的理论原点。文章指出云应用的悖论:它给了我们无缝协作与跨设备访问,代价是把数据主权交给服务器——服务一关,软件即死,数据随之消失。作者提出 local-first software:把本地设备上的数据副本当作「主副本」,服务器退居辅助角色,证明协作与所有权可以兼得。
核心观点
文章给出七项理想作为评判标尺:①无转圈加载(响应不受网络往返限制)②不困于单一设备 ③网络是可选项 ④与同事无缝协作 ⑤The Long Now(数据可保存数十年,公司倒闭后软件仍能运行)⑥默认安全与隐私 ⑦最终所有权与控制权。随后用记分卡逐一检验文件/邮件附件、Web 应用、Dropbox、Git、Firebase、CouchDB 等既有方案——没有一项全部达标。技术出路是 CRDT(无冲突复制数据类型):天生多用户、本地优先的数据结构,叠加端到端加密即可覆盖七项理想。团队用 Automerge 构建了 Trellis、Pixelpusher、PushPin 三个原型,实测结论:CRDT 技术可行、离线体验极佳、冲突远比想象中少;但变更历史累积带来性能问题,P2P 网络仍不成熟。服务器并未消失,而是从「真相之源」降级为「云对等节点」(cloud peer)。
最值得记住的金句/数据
- "There is no cloud, it's just someone else's computer."(云不存在,只是别人的电脑——文中引用的车贴,全文态度的注脚)
- 「在云中,数据的所有权归属于服务器而非用户,于是我们成了自己数据的借用人。……没有任何 Wayback Machine 能恢复一个被砍掉的 Web 应用,互联网档案馆也保存不了你的 Google Docs。」
- 一句话试金石:「把所有服务器都关掉,你的客户的 App 是否还能永远运行下去?」
对我的启发
- 个人知识管理:我的知识库本身就是 local-first 实践——markdown 文件躺在本地磁盘,网盘只做同步的「云对等节点」,任何工具都能直接读取。这正是第 5、7 条理想的日常版本,也解释了我为何坚持用纯文本而非云端 App 存笔记。
- AI 编程工具与 Agent 系统:Agent 与人、与其他 Agent 同时编辑同一份文档/状态,本质就是 CRDT 要解决的问题;「cloud peer」的角色重定义预示了 Agent 时代服务器的新形态——不在关键路径上的辅助节点。文中预言的「Firebase for CRDTs」创业机会,后来真的长出了 Automerge、Yjs、ElectricSQL 这一代产品。
- 写作:文中引《欧洲人权公约》区分「思想」与「表达」——未发表的草稿是思想形成过程本身,值得用不依赖任何公司存活的纯文本格式保存。
适合谁读
做协作/笔记/知识管理类产品的人、分布式系统工程师、关心数据主权与数字遗产的写作者。读完 Kleppmann《DDIA》再看这篇,可补上 CRDT 从算法到产品落地的完整语境。