3 ms·
I have an app that allows users to select data directories for storing config files. This allows customers to sync their settings using an existing syncing solu
by newaccount74 3y ago
I have an app that allows users to select data directories for storing config files. This allows customers to sync their settings using an existing syncing solution. Whether they use Google Drive, Dropbox, iCloud, SyncThing, or even Git is up to them.
The huge advantage is that most people already have some kind of syncing solution set up, and they can just use that. This is especially important for corporate environments where IT has to evaluate what's allowed and what isn't.
It comes with some drawbacks. Your code needs to be resilient enough to deal with inconsistent syncs, you have to use file system observation, stuff might be delayed etc.
But on the plus side, it seems to work very reliably, I've not gotten any complaints yet, and if something does go wrong savvy users can just fix it themselves. It's just a bunch of JSON files on disk, after all.
Most sync tools offer a way to share folders with other users, so if you do it right you get multiplayer for free.
- joshsabol46 3y agoCan you share any reference material / libraries that you used to build these integrations?
- chatmasta 3y agoThere's probably a real business opportunity in selling a product that abstracts this plumbing into an SDK for developers, so they can give their users a polished flow for authenticating and configuring the storage on the frontend, and then interact with the user's chosen directory on the backend. I imagine it's been done before with various "file upload" products but I'm not familiar with the space. As a user, I would love this kind of integration because it means data portability is built into the product.
- newaccount74 3y agoSorry, it seems my comment was misleading. There is no integration with sync apps. My app is a Mac app, so it just reads/writes JSON files to disk in a folder that the user selects. The user selects a folder in iCloud drive, Dropbox, etc. There is nothing special about my code, except that it is written with the expectation that some service modifies the files on disk in the background. Every JSON file has a uuid, so I can track renames of the files. But for the most part it's just a lot of handwritten code that converts JSON into objects and vice versa.