打开网易新闻 查看精彩图片

2000颗GitHub星星,零后端成本,全程不碰用户数据。一个前端工程师用周末下午证明:隐私和体验不必二选一。

事情从一次搜索开始

事情从一次搜索开始

2024年3月,开发者Lars Müller想做个简单的决定辅助工具。不是那种弹窗要权限、后台埋点无数的"智能助手",而是一个问完即走的数字硬币。

他打开编辑器,写了段纯JavaScript。没有数据库,没有登录系统,没有分析脚本。页面加载后,所有运算在浏览器本地完成,连网络请求都省了。

三天后,他把代码丢上GitHub。两周内,这个项目收获了2000颗星星。评论区最高赞的反馈是:"终于有个东西不问我邮箱了。"

技术方案:把服务器踢出聊天室

技术方案:把服务器踢出聊天室

传统Web应用的架构像餐厅后厨:用户点菜,服务员(前端)记单,厨师(后端)炒菜。Müller的做法是直接取消后厨——所有食材摆在桌上,用户自己动手。

具体实现上,他用Web Crypto API生成随机数,用localStorage存历史记录,用Service Worker实现离线可用。这三样都是浏览器原生能力,不需要向任何服务器握手。

随机数质量是关键。Math.random()不够安全,他改用crypto.getRandomValues(),从操作系统熵池取种子。对于"是/否"这种二选一场景,这属于用牛刀杀鸡——但用户不会因此多等一毫秒。

历史记录的设计更克制。默认存最近10条,用户可一键清空。没有云同步,换设备就是新开始。"你的犹豫不该成为我的资产",他在README里写了这句。

为什么偏偏是这个时候火

为什么偏偏是这个时候火

2024年的隐私焦虑已经具象化。欧盟数字市场法生效,美国各州隐私法案碎片化,普通用户开始看懂"第三方Cookie"是什么意思。Müller的工具踩中了一个微妙节点:人们厌倦了"免费"背后的数据税。

GitHub上的讨论区成了小型社会学现场。有人 fork 后改成了塔罗牌版本,有人加了PWA支持让它更像原生App,还有人提交了盲文适配——全部基于同一份零后端代码

最有趣的反馈来自一位产品经理:"我们团队用它决定中午吃什么,省下的时间够开两个会。"

可复制的方法论

可复制的方法论

Müller在博客分享了三个设计原则。第一,假设网络随时会断。Service Worker缓存核心资源,首次加载后完全离线运行。第二,假设用户明天就会删除。不积累沉没成本,数据便携性优先。第三,假设开发者自己会被收购。代码结构简单到任何接手的人都能在一小时内看懂。

这套哲学的代价是明确的:没有用户画像,没有留存曲线,没有A/B测试的优化空间。换成商业产品,这属于自杀式运营。但作为开源工具,它换取了另一种资产——信任。

代码行数统计很有意思:核心功能187行,测试覆盖91%,文档比代码还长。Müller的解释是:"我要让十年后的人还能维护它,包括我自己。"

一个被忽略的细节

一个被忽略的细节

项目主页有个不起眼的按钮:"导出我的数据"。点击后下载一个JSON文件,里面只有时间戳和选择结果,没有任何设备指纹或位置信息。

一位用户在Issue里问:既然没有后端,为什么还要做导出?Müller回复:「因为用户会换浏览器。我不想让他们觉得数据被困住了。」

这个设计没有增加任何技术复杂度,但把"数据可携带"从口号变成了默认行为。相比之下,某些月活过亿的App,导出功能藏在四层菜单之下,且需要等待72小时"处理"。

如果你现在打开这个工具,它会问你一个问题。答案只有你知道,也确实只有你知道——这句话在技术上成立,在2024年已经成了一种奢侈吗?