tl;dr: Every cloud storage solution I've used has an unstable, mysterious and user-unfriendly synchronization interface. Here's what professional sync solutions should look like in 2020.
After being unhappy with OneDrive, then Dropbox, then Google Drive, I am now using Insync. Now, I'm unhappy with Insync, and I don't see a way up.
Reading the previous sentence, a pattern emerges. I'm unhappy with the state of consumer cloud synchronization in general. But why is that?
The first reason is cross-platform compatibility: For example, If I want a single folder on all my devices to be synced instantly. Android, linux, windows, I want the same files in that one folder, everywhere. which product should I buy in 2020 to do this? The answer, as far as I can tell, is none.
But the second reason is that in every product I've used, the user interface for sync is, in my opinion, terrible. In short, it is mysterious, unstable, and unsteerable:
Cloud sync apps have two modes today: paused, where nothing happens, and 'sync' where they download changes and delete unused files. If you're lucky, things just work. If not... [these] [guys]. Below are some example of common situations, starting from a paused state. Will the unsteerable sync train destroy your life, or just download hundreds of gigabytes of files for no reason? Let's find out.
For some reason (upgraded computer, app broke, etc..) you just reinstalled your cloud app. Luckily, you still have your cloud data (half a terabyte) on the hard drive, though it's a little outdated: most files are the same, but some files are new or modified online. You open the freshly installed app, expecting to pick up where you left off, but it's empty. Of course, it doesn't remember how it was configured! Okay, you should just point it to your local copy of the files and let it do its thing right? It should be fine! Unless... Press sync to destroy your life: [interactive directory / sync with a play button]
In the online interface, you move a large folder. On your computer, you realize that the sync app is now downloading gigabytes of data, while deleting the same data somewhere else. It looks like it will take 8 hours. You made some changes to a document, and need to have them synced right now. Sorry, it's only possible to pause everything or nothing. You think, okay, what if I shut down the app, manually move the files, and restart it? Makes sense! Press sync to have a bad day: [program is now deleting the online copy of the files it was downloading]
Essentially, all the problems above boil down to three things: - The two phases of sync are mixed together: 1) syncing differences, 2) applying them. - The UI doesn't intuitively let you know what actions it's going to take when you press play, and how to change what those actions are. - The interface for understanding and dealing with merge conflicts doesn't reflect how common and tricky they are. (Insync merge window, Google drive copying behavior, etc)
I think the first point is the most important. Here's how a sane sync app would work:
there is still a pause and a play mode. But in the pause mode, things still sync! All differences (tiny logs of what files have changed and how) are still downloaded, but not applied. Files deleted online are marked for deletion (small icon in your file explorer), Files modified online are marked 'modified online' even before their new data is downloaded. Files created online are 'marked for download' (phantom files/folders with an icon). Files deleted offline are 'marked for archiving' (phantom files).
All of the following can be done while the app is in 'pause' mode:
Because change logs are small, marking of files for download/deletion/modification is instantaneous. Forget 8 hours, think 8 seconds. And because its instantaneous, you can act on it easily. Delete a file online, its instantaneously marked for deletion on your laptop. Want to cancel the online deletion? Right-click, 'cancel deletion (will be undeleted online)'. The file appears online again. It doesn't matter how big the file is, your ability to act is permanent and instant.
For files modified online, this means that when you open them, before you even download the changes apps can already warn you 'you're changing a file which is already changed online. This will cause a merge conflict, solutions: 1) download the changes before you work 2) modify anyways (merge conflict will occur later)'
And when a merge conflict does occur, there is a need for a clear interface to pop up to deal with them. '3 files are drifting apart and can not be automatically synced. View the differences?' followed by a folder-tree diff, text diff, image diff, video diff, etc.
What if a file is marked to be downloaded, but you paste a copy from a local backup in that place? Diffs are checked instantly, if the file is the same, it is no longer marked for download: the local changes match the online changes, nothing needs to be done. If the local version is different, then it's a merge conflict: view the differences, decided which to keep, or both, or a mix.
You can do all this, and still not have downloaded/deleted a single byte of actual data, only when you press play will the marked changes happen, in the background. Of course, there needs to be another action: 'download/upload this file *now*'. Some things can wait (downloading the 100GB photos backup folder), others can't (presentation_FINAL_v2_V3_due_now.pptx).
That's it: A 'review changes, update diffs' mode (pause), and an 'apply marked changes' mode (default). This means the apps works the same as all sync apps in the normal scenario, but as soon as things go a bit weird or wrong, you press pause, mark/unmark mistakes, save your work, prevent unnecessary downloads, and press play.
More importantly, you can know what's going to happen, and you can change what's going to happen and you can decide when it happens. These are two things which are essential to your sanity, but are somehow not a feature of normal sync apps.
In 2020, a good cloud storage solution is still a distant dream for many people. It even sometimes seems like many providers are going backwards: Insync upgrading to version 3 left many users wondering why an upgrade had to break existing functionality . They also 'temporarily' deprecated their android client (even though the first feature they brag about on their website is being 'cross-plaftorm').