A while ago I got a email from Parse that made me realize I just dodged a bullet. Facebook, that owns Parse announced that they will be shutting down their service in one year. For those of you who don't know, Parse is (was) a service that let you build apps on top of their service, and offered neat things like database hosting, sync and push messaging. They also offered a lot of API:s for mobile, web and native applications.
Why this affected me was that I was in the process of planning an app that would run on top of Parse, we had also been contemplating building a big project on top of it. Luckily we went with something else.
But this post is not really about Parse, it just reminded me about something I've been thinking about for a while. There are a lot of services that let you do different things for free or very cheap. In a way this is quite good, everyone doesn't need to reinvent the wheel. But in the end, you have very little control over the platform. This is really the reason you should build whatever you do on something you control.
I don't mean that everyone should stop posting on facebook and start a blog, or that you can't upload videos of your kids on youtube. But if it would be a problem for you to lose all those things, then you should really host things yourself. It's not really a matter of cost at this point, there are cheap or even free web-hosts, and you can even get a server for 5$ / month from Digital Ocean, or an even better one, for even less from Hetzner.
Granted, any of these might go out of business as well. But if you host on a generic service, you can just move over to a new one without too much fuzz. Many of these solutions are pretty much interchangeable.
This brings me to my main point. If you are building a business, or even just a hobby project, you should make sure that it is something you control to a large degree. Or something that is not integral to the product you are building. Preferably you should be able to swap it out.
What I'm afraid of is that this will get harder over time. There is already a trend to use specific services that would only be slightly harder to implement yourself. At work we have a running joke that if Amazon Web Services would go down, the world as we know it would end. It might be a bit exaggerated, but the fact is that if AWS or a similar service would announce a shutdown after a year like Parse did. A lot of companies would have to scramble to re-design everything.
I'm not advocating not using any of these services, they really do enable businesses to do thing that might not be possible otherwise. But I think a lot of people choose to use them when they don't really need to. I did fall into that trap earlier as well, and I've been trying to work myself out of it.
I know trends are very cyclical, I think we are probably near peak cloud at the moment. I'm a big fan of could services myself, but many of the most popular services at the moment are very closed, and don't play well with anything else. Take Facebook as an example. If you are using it as a photo-album for your life, then in 5-10 years when the next thing comes around, all your photos are stuck there. You might not have backups, especially not organized.
The problem is of course that I don't have an answer regarding what to do about the whole. Everyone can't do self-hosted photo-albums, but it might be a good thing to keep in mind. Also, you may find that you can do a lot more than you think you can when it comes to hosting your own stuff. It does take a lot of work sometimes, but it might also be a lot of fun.