Sam Gentle.com

Open services

It seems like the world of open source is becoming increasingly irrelevant to end-users. Developers, of course, still value the ability to access, modify and run source code, but for most modern software that model is insufficient. 15 years ago we could run our own copy of Mozilla, but today it's not possible to run our own Facebook or Twitter. Not just because the source code isn't available, but because it's not even meaningful to speak about "running" Facebook. Facebook is the sum of many pieces of software running in data centres, devices and browsers across the world.

Modern software is expected to sync across multiple devices, to be accessible from other computers, and to interoperate with other software including instances of itself. To embrace those requirements means a huge expansion of what open source means into something new entirely. Forget the specific mechanism of source code, we need to recapture the general goal of anyone being able to contribute to and customise the software in their lives. Software that runs over a network is usually called a service, so I'm thinking of it as open services.

An open service is something that you can take and run for yourself in a way that is meaningful. An open service social network would allow each user to run their own instance if they wanted while still maintaining a connection to and sharing updates with the rest of the network. An open service news site would let you create a custom news feed for friends, family, colleagues or a community without that data being accessible to others, but still provide you with the ability to integrate with other news feeds if you want.

Individual parts of this vision already exist, such as the concept of federated systems, but this goes further. An open service is also something like a federation of code. It should be possible to make and share your modifications to code in the modern networked software world as easily as you share the data itself.