I'm currently working on a tiny task management web application for my own needs. To minimize the implementation work I came up with a concept that I think could suit a number of applications like this as well:<p>- No user signup (no backend at all)<p>- Local first (via localstorage)<p>- Optional bring-you-own-storage functionality for sync and backup<p>The last point would allow the user to provide, say, an S3 endpoint and api key to allow the application to synchronize its state to a remote data store. By supplying the same credentials to the application on another device, one would have cross-device sync effectively for free. To avoid exposing data to the storage provider I'm also implementing client-side encryption.<p>Now the only remaining question is what storage protocol to use. I've found S3 client libraries to be severely lacking for browser environments (the AWS SDK is a mess and seems to rely on nodejs shims to work, not to mention its gargantuan size).<p>What are other easy to use and widely available storage protocols? WebDAV? A git repo?
Curious to hear what else is out there!
Is this strictly for techies that would possess AWS keys in the first place (see Dropbox HN launch post, just set up your own FTP server, etc) or eventually intended for normal people?<p>If you are implementing client side encryption, something like "log in with dropbox" oauth, GDrive, etc or similar to just serialize an encrypted snapshot into a known folder would be the most usable for non techies based on previous stuff I've worked on. Asking people to set up restricted IAM roles and keys to write to a single bucket for a todo list is honestly very high up there on the ridiculous list, as much as I would totally do that.
If it's the AWS SDK that bothers you can't you just use the S3 REST API (<a href="https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html" rel="nofollow">https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html</a>) directly ?