Hacker News 中文摘要

RSS订阅

Show HN:Capsule 单文件Web应用数据存入SQLite -- Show HN: Capsule – Single-file web apps that save their data into SQLite

胶囊(Capsule)将整套应用的用户界面、数据及所有内容打包进一个可移植的 .capsule 文件,无需云端,无需账户,直接分享即可。用户描述所需应用或功能后,系统会生成包含 HTML 界面、schema 与本地 SQLite 数据的单文件容器,并可通过 AI 提示或 MCP 编码工具实时修改特性、暗黑模式或 schemas。该文件能像 PDF 或 Word 文档那样通过 WhatsApp、AirDrop 或电子邮件发送,接收者点击后即刻启动,所有数据已预加载完毕。

正文

Capsule 把你的整个应用——界面、数据以及一切——打包成一个可携带的 .capsule 文件。不需要云,不需要账号,分享就行。

01 / 提示你的想法

描述你需要什么

描述你想构建的应用、布局或功能。

02 / 即时生成 Capsule 应用

自包含的输出

生成完整的单文件 .capsule 容器,包含 HTML 界面、数据结构和本地 SQLite 数据。

03 / 即时迭代

AI 实时更新

通过直接的 AI 提示或 MCP 编码工具,随时修改功能、深色模式或数据结构。

从下面选一个 AI 助手,开始构建你的应用。

01 / 便携性

如果应用只是一个文档会怎样?

忘掉云账号、服务器和订阅。Capsule 把你的界面、媒体资源和本地数据库打包进一个可携带的 .capsule 文件。

像发 PDF 或 Word 文档那样,用 WhatsApp、AirDrop 或邮件发出去。收件人点一下文件,它立刻启动,所有数据都已预载,随时可用。

💬

在聊天里分享应用

把可交互的追踪表、作品集或工具发进普通聊天线程,点开即可使用。

🎨

零供应商锁定

Capsule 使用标准 HTML 和 CSS。代码和数据完全属于你,不受云端封闭生态束缚。

02 / 隐私优先

设计上 100% 私密

Capsule 把你的个人数据放在它该在的地方——你的设备上。你创建的一切都直接保存在文件里,完全归你所有,没有任何云服务器。

写任务、记食谱笔记或存项目日志。没有云存储,没有账号注册,也不需要联网。一切都安全地保存在文件内部。

🔒

离线优先存储

100% 离线可用。在飞机上、地铁里,或者完全断网时都能访问你的应用。

🔑

安全的本地保险库

数据安全地封装在单个文件里,彻底免受服务器泄露的影响。

03 / 跨平台

一个文件,所有操作系统

Capsule 文件默认完全跨平台。在 macOS、Windows 或 Linux 上打开同一个文件,无需转换或特殊设置。

你的应用在任何电脑上都能以完整的桌面性能启动,原生 iOS 和 Android 支持即将推出。

⚡

桌面即时启动

在 macOS、Windows 和 Linux 上无缝启动,无需任何设置或配置。

📱

移动端即将支持

在 iOS 和 Android 设备上打开并运行完全相同的 .capsule 文件。

获取 CAPSULE

准备好运行便携应用了吗?

Capsule 完全免费。下载对应平台的宿主播放器,几秒内就能打开任何 .capsule 文件。

桌面端

macOS:macOS 12 Monterey 或更高版本

Windows:Windows 10 或更高版本(64 位)

Linux:Ubuntu / Debian / Fedora

网页端

Web:在浏览器中运行,用于快速预览。无法直接在你电脑上打开或保存文件。

移动端(即将推出)

iOS:iOS 16 或更高版本,App Store

Android:Android 9 或更高版本,Google Play

评论

讨论整体认可这个想法的巧思,但对它的定位普遍存疑:主流质疑集中在「既然要装宿主应用、状态又要同步,那为什么不直接用浏览器或托管在 Web 上」,支持者则认为它刚好补上了 AI 生成应用缺少数据分享载体这一空白。

需要频繁更新和同步状态的应用,不适合做成可传阅的文件

  • 如果应用要写入数据库并保留状态,每次状态变化都得重新发一份文件给所有人,而状态如果从不变,用数据库就没意义;托管在 Web 上后数据库动态更新、有权限的人自动可见,反而更简单(较多人)
  • 状态天然属于共享的东西,把它和代码绑在一个文件里,最终还是要另建一套复杂的同步系统接回中心数据库(较多人)
  • 这类捆绑只适合很窄的场景:愿意连数据一起发,那直接把数据嵌进 HTML 就够了;如果预期用户会改数据,就不该这样发(较多人) > 状态一变就得给别人寄一份新的文件,那还不如放在网上让数据库实时更新。(@jawns)

宿主应用本身就是分发摩擦,浏览器已经能做同样的事

  • .capsule 需要机器上先装一个能读它的宿主应用,这就是分发的第一道坎;HTML/CSS 几乎每台电脑都能直接跑,是更好的分发机制(较多人)
  • 现在用 Chromium 浏览器加 File System Access API,再配一个 PWA manifest,就能近似做出这种带本地文件读写的「原生感」应用,不必引入新格式(较多人)
  • 网页已经能像桌面程序一样读写本地文件,桌面和移动端都跑得通;同样的道理,IndexedDB 也早就解决了本地存数据的问题(较多人)
  • 如果用户反正要先下载某个程序才能用,那为什么不直接把那个程序本身发给他?浏览器已经是最接近「人人都有」的运行时(少数人) > 网页现在可以像桌面应用那样直接读写本地文件,桌面和手机都工作得很好。(@mg)

单文件应用可能成为新的恶意载荷通道

  • 这种「一个文件装下整个应用」的形态很像注入攻击的温床,关键在于运行前能不能被检查和审计(较多人)
  • 评论区出现了 macOS 报「Capsule 已损坏,无法打开」的下载反馈,这既暴露签名问题,也让人意识到它同样方便夹带恶意负载(较多人)
  • 直白地说,这是病毒分发的新方式,想法不错但一定会被滥用(较多人) > 这是给病毒开辟的新分发渠道,创意很好,但肯定会被滥用。(@tamimio)

它真正的机会在 AI 生成的产物缺一种带数据分享的载体

  • AI 很擅长生成可视化的成品,但一旦这些成品要带上数据,就缺少不硬编码的分享方式,这个工具正好填了这个空(较多人)
  • 大公司正在试点用 agent 自动处理业务流程,对于那些小到不值得维护传统后端的工作流,用它分发应用很合适(较多人)
  • 很多人看到的是同一件事的不同侧面:随着 AI 与人的主体性之争持续,本地优先的桌面应用会回潮,顺手的工具值得欢迎(较多人)
  • 用 Tkinter 写小工具替代被滥用的 Excel 表格曾是不少人的第一份工作,这类应用有真实需求,但如果想靠它赚钱,前景存疑——有人已经在用大模型免费生成 HTML 小应用了(少数人) > AI 很会生成好看的成品,但要把数据一起给别人,就没有不硬编码的办法。(@razerbeans)

多份副本怎么合并,仍然没有说清

  • 作者提到用 UUID 加时间戳来支持合并,但如果两个人各拿一份 .capsule 分别改动再互相交换,得到的就是两个数据不同的文件,具体怎么调和没有交代(较多人)
  • 关心的是实际工作流:把待办清单发给别人,对方标记了几项完成再发回来,这会合并进我的副本,还是会作为一份全新的应用打开?同时希望能看到容器文件里的 HTML、JS 和 schema(较多人) > 两个人各改一份再交换,得到的就是两个数据不同的文件,你们到底怎么合并?(@razerbeans)

有价值的补充

  • 有人已经在做几乎相同的方向,并且用 sqlar 当作格式规范:同一份应用能在浏览器、通过 Tauri 的桌面端和 Android 上运行,还提供了演示应用和游戏
  • 「无云、无账号、就是分享」这句口号也引起反弹,有评论者直接关掉标签页——反映出部分人认为「不联网」在这里是缺点而非卖点
  • 有意思的类比:单文件装下整个应用让人想起 Lotus Notes 的旧梦,也有人把它总结为「又做了一遍 Visual Basic,只是这次带着大模型和 Web 技术」
  • 有人提出它看起来很适合打包成独立二进制,但这似乎不在计划的使用场景里