I just added Google Drive support to the Capsule Web app, which supports reading and writing capsule files. More cloud providers and features are planned, along with integration into the desktop app.
Thank you for providing such a concrete use case, this is exactly why I created Capsule in the first place. I will add support for APIs without CORS in the next version of the app.
There are a few things in Capsule to avoid corruptions of the file during syncing. The DELETE journal mode is used and writes are batched into transactions so that updates are always complete changes. And if there is a copy created because of a conflict merging two capsule files is supported.
Merging works already but is a little bit hidden under the data editor function in the Capsule edit menu. Currently the last record update wins, but a merge UI is planed to do manual conflict resolving.
I'm currently 50/50 on open source the full app vs just the spec. Since I'm currently having a strong idea of what features and functionality is still missing I feel that open-sourcing right now would distract to much in this phase. But maybe when the main features are done it would make sense to have more people looking at and improving it.
Each document record is saved with UUID and timestamps. When deleting a record the data is removed but the record keeps a tombstone so only the ID remains. For conflicts currently the newest one is used, but there will be a merge like UI in the future to confirm which one to use.
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.
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.
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.
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.
you can trivially bake X binaries if you have the viewer app for each platform. This is the normal way to distribute software for cross-platform support.
I might just be hyper-defensive to any sort of vendor lock-in like a "viewer app".
reply