If Proton got their devs together for a two week internal hackathon, they could build a very simple Proton client for Linux that would match functionality of Dropbox and quickly gain a lot of new customers. And make existing customers very happy thus creating free publicity to attract even more customers. Alas, their priorities are trying to upsell unnecessary products to their existing customers and not providing products they actually want. And I am saying all this as a paying Proton customer.

I work in this space with my oss work on Filestash, and its sync client https://github.com/mickael-kerjean/fdrive. A proper sync client is nowhere near a two week hackathon unless you vibe code it and don't have much care. I've been on it for 6 months and it's far from finished. Linux alone has a fragmentation problem. The sync engine can be shared, but the integration can't: tray, status, file manager overlays and notifications all work differently on GNOME, KDE, COSMIC, Omarchy, Sway. Electron looks out of place everywhere, so you end up maintaining one frontend per desktop, plus packaging for each distro. Then there's the sync itself, which is a long tail of edge cases, often platform specific. Last week I optimised the rm -rf case, FUSE hands you one unlink per file, so a folder with 10k files becomes 10k API calls unless you do clever things. Today, I've tried to optimise thumbnails, problem is the file manager opens every file in a folder just to render previews, so browsing a directory of videos can easily get uggly as well, let's not talk about the state of atomic save which if you are not clever here too will create multiple files on your server and waste bandwiths. There are many dozens of these edge cases just on linux and that's before you tackle window, mac, android, how do you handle delta sync ....

My "two week" estimate was too sarcastic. Thank you for detailed explanation about all the problems and challenges that comes up when building a file sync client. I really admire your attention to detail while trying to correctly integrate the sync engine in all different file clients.

[dead]