Should proprietary cloud storage providers be supported in a small oss project?
My thoughts¶
I'd even argue to not add proprietary cloud services back at all.
Why? Are they convenient to have? Yes. Do I use some of the myself? Yes. Will a lot of users start crying because they would rather dump as much additional work as possible on someone else (the dev) before thinking about adjusting own workflows? Yes.
My concern stems from what history has taught us about those big players (especially the first two in your list). There are tons of ways in which the endpoints of those services will break constantly. Shift in business focus, change in licensing models, legal enforcements by governments. Add the usual security related fixes to it.
Therefore, just implementing it is not enough. Once it is available, users will (rightly so) rely on it. If it breaks, you need to fix it ASAP (which has an impact on how releases are planned and rolled out). If you don't, you will get all the blame for the app not working.
My fear is that instead of maintaining the actual project, you will end up running in circles, constantly cleaning up the mess produced by upstream service provider changes.
Feel free to oppose this view. It's just my experience in personal and professional context. I have seen companies relying on those big players going into panic mode so often that I do not wish to see this happen to a single maintainer of a promising project.
References¶
This was in reply to Google Drive, Microsoft OneDrive and Dropbox from the KeeWebX fork because most of it was broken beyond repair on the upstream.
At the same time the plan to add it back was given a high priority on the roadmap. Thus, I wondered how - or more precisely - if small projects can effort to embrace those additional dependencies.
My answer is no. Whenever possible, try to bridge the gap by re-using well-maintained projects that focus on storage services.
I am not talking about adding software dependencies for a project. Instead it is about documenting workflows for users that can be used to bridge or mitigate the missing native support.
Random examples include using rclone to access proprietary storage backends without the need for running dedicated sync clients.
Another example might be mounting an external storage in your existing Nextcloud instance.