Recently, I received an email from the creators of an app that I use regularly. This app played a crucial part in my life. The email said that they're shutting down the service by the end of the month and that I should export all my data. They were focusing on other products that they had released. Needless to say, I was quite irritated.
See, I hadn't paid for this product. I was a very early user and as a token of their appreciation, I got lifetime access for free, even though I had mentioned to the founder that I would gladly pay for it. I was glad I got free access though.
My problem with them shutting down this service was that I have to find something else that fits my needs. This happens a lot in software but when I had initially started using the app, I had imported all my data from another, very popular service that I had been using for years.
Now they shutting down and I'm left with a JSON file with all my data. Since this app wasn't nearly as popular as its competitors, I can't migrate my data anywhere. They, of course, recommended good alternatives. But those alternatives don't provide import for this app. This situation has happened to me a few times already. I'm sure there are plenty of people who have faced this.
This brings us to the root of the problem with closed-source, cloud software. We're totally at the mercy of the makers and when they decide to stop their services, we have to scramble to find another solution. Often, the data cannot be ported and we've to start from scratch. And that sucks.
This problem is mostly mitigated by open-source software. If the creators of an open-source software stop maintaining their app, we could always fork the project and run our own instance. We could even add features and maintain our forks if we want. But that requires us to be fairly technical. As a side note, just because an open-source project is not getting new commits, doesn't mean it's dead. Software can be complete, no longer receive updates, and still function.
I think people everywhere are realizing this. I think this is a contributing factor to a huge influx of commercial, open-source software in recent history. There are plenty of popular, open-source alternatives to their closed-source market leaders. This is a great direction for the tech industry and I'm hoping to see a lot more COSS in our future.
As for my problem, I've started using an alternative but I'm still on the look out for an open-source solution. As a software engineer, I have the luxury of building my own solution. I think I'll end up doing just that. But not everyone is technical. A non-technical user of a software that is shutting down — open-source or otherwise — has nowhere to go. Universal interoperability between different software is an impossible problem to solve. It's quite rare that the data we export can be easily imported somewhere else.
What we can do though, as software engineers, is make the process of self-hosting open-source software as easy as possible for non-technical people. This means having easy to read documentation and one-click deployments for popular hosts. It's not always possible though. And anyone who wants to self-host have to get their hands dirty at some point. So having a community to rely on is also a crucial part of running open-source projects.
Anyway, that's the end of my rant. Going forward, I'm trying to exclusively use open-source software to run my life. I don't want to be stuck in a similar situation again. Wherever possible, I'll build my own solutions. I also want to think more about how to solve the problem of self-hosting all the software we use everyday. And also about how to make it easier for non-technical folks to do the same.