The current Localful project is currently designed to support web applications.
A different type of application is something like Obsidian, that build upon the native filesystem and uses Electron rather than just being restricted to the web browser. This has a number of advantages, the main ones being data can be stored in plain files and isn't locked into any specific implementation or app.
I don't think these apps would use a local device, instead I think these apps could maybe:
Local-first by default just means operating against the plain filesystem
To do server backup and sync:
encrypt files as blobs of encrypted data and handle these as basic REST resources
Could implement a blob websocket for app instances listening for updates
Conflict reoslution when editing the same blob would be done client side using some sort of automatic diff/patch system on the text. Obsidian uses Google's diff-match-patch library.
This is a very simplicty idea, something like file hashing may have to be implented to reduce the amount of network requests and payload sizes as device could then compare hashes before having to request, decrypt, patch, encrypt and upload a blob again.
This "blob" functionality could be built into the existing server, and they could be linked to resources to allow for different collections/vaults of data.
A different common/local package would need to be developed to support this use case, as the existing common and local packages are specific to the web platform.
The current Localful project is currently designed to support web applications. A different type of application is something like Obsidian, that build upon the native filesystem and uses Electron rather than just being restricted to the web browser. This has a number of advantages, the main ones being data can be stored in plain files and isn't locked into any specific implementation or app.
I don't think these apps would use a local device, instead I think these apps could maybe:
This is a very simplicty idea, something like file hashing may have to be implented to reduce the amount of network requests and payload sizes as device could then compare hashes before having to request, decrypt, patch, encrypt and upload a blob again.
This "blob" functionality could be built into the existing server, and they could be linked to resources to allow for different collections/vaults of data. A different common/local package would need to be developed to support this use case, as the existing common and local packages are specific to the web platform.