
Bento的幻灯片编辑器:整个应用就装在一个HTML文件里。截图:bento.page
昨天Hacker News头版第一,一个叫Bento的东西,628个赞。标题很唬人:一整套PowerPoint,塞进一个HTML文件里。编辑、演示、存数据、多人协作,全在这一个文件里。
我第一反应是不信。做过前端的人都知道,一个能编辑、能演示、还能实时协作的幻灯片应用,背后通常是一整套东西:前端框架、账号系统、后端数据库、云端存储、协作服务器。现在有人告诉我,这些全没了,就剩一个你能双击打开、能用记事本查看源码的.html文件,大约570KB。我把它下下来试了试,是真的。
它到底是怎么塞进去的
拆开这个文件看,思路其实很朴素。文件顶部是一大块明文JSON,你的每一页幻灯片、每张图、每种字体,都以人能读懂的文本形式躺在那儿。作者管这叫"view-source honest"——源码是诚实的,没有二进制黑箱,没有私有格式。JSON下面才是应用本体,一段base64编码、压缩过的代码块,浏览器打开时用DecompressionStream这个原生API当场解压运行。没压之前大概1.3MB,压完塞进单文件才勉强能塞给人。
演示部分它没重造轮子,底子是老牌的reveal.js,动画用GSAP做元素间的位移变形,图表引擎倒是自己写的——原本想用echarts,太大,为了省体积干脆重写了一套。最有意思的是保存这一步:文件靠浏览器的File System Access API,直接把自己顶部那块JSON改写掉,等于文件自己改自己。浏览器不支持这个API时,就退回老办法,重新下载一个新文件,还给你用ECDSA签个名防篡改。
真正让我坐直的是协作
单文件存数据不新鲜,早年的HTML应用就干过。但"多人实时协作"这四个字,一般是绕不开服务器的。Bento的做法有点狠:它自己写了一套CRDT,一种能让多人同时改、离线各改各的、再合并时不打架的数据结构,连文字都做到了逐字符合并。你和同事各自断网改半天,重新连上,两边的改动能精确合回一起。
加密这块它也想清楚了。协作用端到端加密,AES-GCM,密钥就存在你的文件里,永远不上服务器。中间那台中转服务器(跑在Cloudflare的Durable Objects上)只看得见密文,学不到任何内容,作者叫它"blind relay",盲中继。谁的只读、谁能编辑,靠签名强制,还能撤销。更妙的是那句话:文件本身就是邀请函。你把文件发给谁,谁打开就自动进了这场协作。软件、文档、入场券,三合一。

Bento在Hacker News头版第一,六百多赞。作者在帖里讲了实现细节。截图:news.ycombinator.com
为什么单文件这股复古风又火了
单文件应用不是新概念,它老得掉牙。但这几年冒头,我觉得是被两件事逼出来的。
一是我们受够了。现在打开一个所谓的"应用",先注册、再登录、同意二十条隐私条款,用着用着弹一句"请升级到最新版本才能打开你自己的文件"。你的东西存在别人的云上,哪天服务关了、公司黄了,文件跟着陪葬。Bento反着来:不要账号、不要云、不要我们。它甚至敢说,2026年做的一份文件,2036年照样打得开——因为它不依赖任何还得活着的服务器。
二是浏览器这些年被严重低估了。DecompressionStream、File System Access API、Web Crypto里的AES-GCM和ECDSA,这些能力早就悄悄进了浏览器,只是没人这么用。Bento等于把浏览器当成了一个现成的、装在每台电脑里的运行时——不用装Node、不用配环境,双击就跑。可移植、能离线、免安装、发一个文件就能分享,这些好处不是它发明的,是Web平台一直有、我们一直没好好用的。
但它不是万能的,也别被标题骗了
我得泼点冷水。HN评论区里,问题也不少。Firefox上动画卡成PPT,有人开着协作测试,M1的Mac直接冻住。协作时别人改无关的元素,你的光标焦点会莫名丢掉。撤销是基于快照的,手一抖可能把协作者的改动一起撤了。它是桌面优先,手机上能看能演,编辑体验一般。还有人翻出来,主页写着"什么都不往外发",却抓到一个cloudflareinsights.com的统计信标,作者当场认了在查。
更现实的局限是:单文件意味着预设的数据结构,你想往里塞Mermaid画流程图这类任意库,塞不进去,灵活性天然不如原生的reveal.js。还有个哭笑不得的:很多公司邮箱系统,见到HTML附件直接给你拦了——文件是软件,可惜守门的保安不认。
我怎么看
Bento最值钱的,不是它做了个能用的幻灯片工具,而是它认真回答了一个工程问题:为什么非得把一个应用拆成前端、后端、数据库、云存储这一大摊子?很多东西,一个文件就够了。它顺手证明了浏览器早就是个被浪费的强大平台。作者还放了话,Docs和Sheets在路上,要凑一整套"装进一个文件里的Office"。这事MIT开源,谁都能拆开看、拿去改。
它替代不了Google Slides那种重装协作,也不该。但它戳中了一根神经:我们是不是把太多本可以很简单的东西,做得太复杂、太依赖别人了。一个能自己改自己、能离线、能十年后照样打开的文件,朴素,但踏实。这种踏实,现在挺稀缺。
资料来源:Bento官网bento.page/slides、Hacker News "Show HN" 讨论帖(item?id=49008211,约628赞)、GitHub仓库nyblnet/bento。功能与体积以官方最新版本为准。
你会把一份能自己存数据、还能协作的HTML文件当成正经工具用吗?说说你的顾虑。