Capsule - Single-file web apps with built-in SQLite

Show HN: Capsule – Single-file web apps that save their data into SQLite

Capsule - Single-file web apps with built-in SQLite

Capsule packs your entire app—UI, data, and local SQLite database—into a single portable .capsule file. Forget cloud accounts, servers, and subscriptions. Just describe your idea, and Capsule generates a complete self-contained app with HTML UI, schema, and local data. Share it via WhatsApp, AirDrop, or email like a PDF; recipients tap to launch instantly with all data preloaded. Capsule works 100% offline, is cross-platform on macOS, Windows, and Linux, and keeps your data private with zero vendor lock-in. Download the free host player and open any .capsule file in seconds.

What if an app was just a document? Send it via WhatsApp, AirDrop, or email just like a PDF or Word document—when the recipient taps the file, it launches instantly with all your data preloaded, ready to use.
  1. mg

    > but trying to save data required hosting it somewhere

    With the File System Access API, webpages nowadays can read and write local files just like desktop applications:

    https://developer.chrome.com/docs/capabilities/web-apis/file...

    Try this text editor for example:

    https://googlechromelabs.github.io/text-editor/

    It works nicely on Desktop and Mobile.

  2. nater5000

    I don't know, this seems like an idea that maybe works in a specific context being generalized past the point of the original idea making sense.

    If the user needs to download a specific application to run this these web apps, then why not just send them that initial application in the first place? Why jump through the hoops of using Capsule when the same hoops can be jumped through to get to the same endpoint?

    If this was a near-universally adopted application, then it'd make sense. But it's not, and the closest thing we have to that are browsers... which already do what you're describing?

    Bundling data with the application makes sense, but is also only appropriate in pretty narrow circumstances. If I'm willing to ship my data with the web app, then I'll just embed the data in the HTML file. If the expectation is that the user will modify this data, then I don't think I'd want to ship it like this.

  3. jawns

    My take: If your app needs to update and preserve state (using SQLite or any other DB), it is probably not something you want to pass around as a bundled file.

    Or at least, it's extremely limiting, compared with hosting it somewhere on the web, which is not that hard to do these days.

    Think of the workflow: Any time the state changes, you need to email a new Capsule file to whoever else is using the app. And one would think the state would change at least occasionally, because otherwise there's little reason to use a DB.

    Alternatively, you can just host it on the web, the DB state dynamically updates, and it's automatically available to anyone with app access. Isn't that a lot simpler?

  4. thederf

    I've been working on this exact idea, with sqlar as the "format specification". Works in the browser, and desktop + Android using Tauri.

    https://github.com/JoshTheDerf/uapp

    Demo apps and games: https://thederf.com/uapp/demo/

  5. razerbeans

    I love this idea! One of the fallouts from widespread AI adoption that I've seen: They're very good at creating visual artifacts, but if you ever have to provide data in those artifacts, you don't really have a great way to share it without hard coding it.

    > One downside with this approach is that multiple people working on it will create different copies. To make it possible to merge different copies of the same file, each data entry has a unique UUID and timestamp.

    This was the first thing that popped up in my mind: Changes stemming from two sources and reconciling them. I see that you have a statement about how to handle data entry from different sources, but I don't see exactly how those are reconciled? For instance, if two users have a copy of the .capsule and make changes, then want to share their changes with the other, you have two individual .capsules with different data.

    How do you merge them?

  6. eleventen

    You can get a cheap approximation of this with chromium browsers + Filesystem API and a PWA manifest for that native-ish feel. AI has reignited my interest in building based 100% on browser native features.

    https://developer.mozilla.org/en-US/docs/Web/API/File_System...

  7. m-p-3

    It kinda reminds me of MS Access, which ended up being a pain in the butt for IT departments, but also covered a need within some department with limited resources.

    Really curious to see where this goes. Do you plan to open-source the client, or simply make the file specification open when stabilized?

  8. olaulailadila

    An idea for a killer feature:

    Make it so that auhors can expose their capsules to the internet, and the people whoe wants to use them(lets call them users) can type the name(lets call it address) of the caplsue into the app, and your program will pull that capsule in the the users device..

More from this day

2026-09-15