93 pointsby bashtian2 hours ago23 comments
  • rc-11409 minutes ago
    This is a really cool and practical idea! Some of my first professional efforts out of college were writing Python mini-apps with Tkinter to replace "abused" Excel spreadsheets. One of my friends working in sales might benefit from something like this, I'll send it his way.

    I don't know about the stability/market value of this if you intend to turn this into something that attempts to make money, however. Said friend is currently using stuff like Gemini to generate HTML mini-apps as well; while he's not storing anything in databases, he's able to generate receipts and other things for essentially free.

  • thederf35 minutes ago
    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/

    • windsurfer24 minutes ago
      FYI requests from your demo are being blocked by CORS in Firefox and it never loads.
  • razerbeans21 minutes ago
    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?

  • Jonovono5 minutes ago
    “Capsule.app” is damaged and can’t be opened. You should move it to the Trash.
  • jawns37 minutes ago
    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?

    • Reviving151410 minutes ago
      Why not on a shared drive like dropbox?

      Concurrent editing wouldn't work, though.

  • olaulailadila26 minutes ago
    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..
  • lewisjoe2 hours ago
    This is great. Curious: this requires users to have a host app installed on their machine that can read .capsule file right? Won't that be a point of friction for distribution?

    Isn't html/css a better distribution mechanism as most computers already have the tech to run them?

    • Dwedit2 hours ago
      You'd think so, but web browsers are downright lobotomizing the ability for local HTML files to run any meaningful javascript code. Want to run a JS file from the same directory? CORS ERROR!!!!

      Hence 200MB applications that are complete copies of the Chromium browser to run under 1MB of actual web code.

      • throw101010an hour ago
        Isn't that the price of a relatively well sandboxed experience by browsers?

        I've experienced the same limits building small tools for myself and friends that I wanted to contain in a single HTML file without external dependencies... but I understand why the same project without these restrictions could easily become malware, and ones that could be easily propagated.

      • slipperybelugaan hour ago
        [dead]
    • ProfDreamer29 minutes ago
      That reminds me of TiddlyWiki[1], a wiki application in the form of a single self-contained HTML file.

      1: https://en.wikipedia.org/wiki/TiddlyWiki

    • bashtian2 hours ago
      The problem is that you can't save the user data in way that you can click a single file, similar to a Word or Excel file. I you think a about it, a Excel spreadsheet is also just UI + data in a single file.
      • paweladamczukan hour ago
        This is a frustration of mine as well, but I vaguely remember someone showing something on HN where the file could essentially save itself, I think they were using some file APIs for that... sadly I can't find the details anymore. But I keep running into the "HTML file opened locally can't update itself" issue repeatedly now that I build tools for myself with LLM agents.
        • yoz28 minutes ago
          The File System Access API can do this, and it works in local ("file:///") HTML files, but it's only currently supported in desktop Chromium browsers: https://caniuse.com/native-filesystem-api

          However, every browser will let you download a new version of the HTML file and save it over the old one - yes, even from a local HTML file:

             const blob = new Blob(['<!DOCTYPE html>\n' +
                document.documentElement.outerHTML], 
                { type: 'text/html' });
             const a = document.createElement('a');
             a.href = URL.createObjectURL(blob);
             a.download = 'mypage.html';
             a.click();
          
          ... but you need the user to do this for every update. So we're back to manual "Save" buttons.
      • alexis2ban hour ago
        Technically that was more MS Access :-)
    • lukasbman hour ago
      I imagined the capsule website would be able to either convert or directly run/open them
  • eleventen2 hours ago
    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...

    • bashtianan hour ago
      If you want to distribute apps to many users this would probably be a better solution. The main benefit of Capsule is the personal document like app. You create a capsule, move it to an USB stick, save it in your cloud storage and it's still the same document. Nothing has changed, not the UI, not the data. The document will stay the same.
      • ramon15630 minutes ago
        how is a filesystem supposed to prevent you from doing that?
  • dzink26 minutes ago
    Looks useful, but the Mac download shows "“Capsule” is damaged and can’t be opened. You should eject the disk image." and then you realize it could be ripe for malicious payloads as well.
  • xd193624 minutes ago
    "No cloud. No accounts. Just share it." close tab
    • mionhe5 minutes ago
      Can you elaborate a little?
    • j-pb5 minutes ago
      yes yes we get it, you don't like AI ...
  • redogan hour ago
    This seems ripe for an injection attack. Can it be inspected before running?
    • 5 minutes ago
      undefined
  • gaddersan hour ago
    >>Capsule packs your entire app — UI, data, and everything — into a single portable .capsule file.

    I'm having Lotus Notes flashbacks.

  • sigmonsays28 minutes ago
    if state is best shared, why keep it w/ the code?

    You're gonna end up having to build a complex state sync system to a central DB anyways...

  • andai2 hours ago
    That's pretty cool. But who is this for? What problem does it actually solve?

    How would I know if I need this, vs something else?

    • bashtian2 hours ago
      If try to do data management in Excel or need to download an app just to save some recipes, this could be an alternative. For example you can track time and billing with a nice UI without requiring a SaaS subscription. You can try some examples in https://withcapsule.app/preview
  • dgf18an hour ago
    Many big companies are starting now to test agentic coding to automate business processes. This could be a nice tool to distribute apps for workflows that aren't big enough to justify the operational overhed of maintaining a traditional web app backend. Nice!
  • lolakuttyan hour ago
    What is wrong with using IndexedDB?
    • bashtian38 minutes ago
      For saving data in the capsule file it would create complexity regarding migration handling when updating the HTML file to add a field to a form for example. Keeping the data schemaless makes it also easier for merging data or importing data from a CSV.
  • fdethan hour ago
    So, let’s do Visual Basic again, but this time with LLMs and web stuff.
  • tamimio35 minutes ago
    New way to deliver viruses just dropped! Great idea but it can be abused for sure.
    • bashtian13 minutes ago
      The HTML files does not have any permission to access anything on the file system. Ideally the whole app will be running inside a sandbox on desktop, for mobile apps this will be the default anyway.
  • tonymetan hour ago
    is the idea this would be hosted or run locally (like Electron)?
    • bashtiana minute ago
      This is for local document like apps. Tauri is actually using the OS webview instead of bundling Chromium like Electron. That's why the download is only 10MB for Mac.
  • blamestrossan hour ago
    Seems very "packable into a standalone binary" but doesn't seem like that is a planned use case.
    • bashtian43 minutes ago
      The problem would be cross-platform support. In the end the capsule file is the standalone binary similar to a PDF or a Word document, you only need the viewer app to open any capsule file.
  • pmkary2 hours ago
    Really really nice
  • zackify2 hours ago
    love this idea!
  • bezko2 hours ago
    [flagged]