Thinking Differently About Free Network Services

Sometime in 2007 Tim O'Reilly started talking about applying free/open-source ideas to things besides software, like hardware, government data, personal data in web applications, etc. He had a great post about this around that time which I can't find at the moment, but if my memory serves me he talked about it in his keynote at OSCON 2007 The idea is that lots of people have struggled in produced great free/open-source software at the level of the desktop or the server, but we need to start thinking more broadly.

More recently, groups like autonomo.us are focused on applying the four freedoms and other free software ideas to network services, to web applications and data in "the cloud". <!-- SUMMARY_END -->

This is not the place to explain free/open-source software - I'll leave that to others.

Broadly, the history of mainframes, personal computers, and web applications is a cycle of centralization, de-centralization, and now a re-centralization. Before PCs, computers were huge, expensive, centralized systems that were jealously guarded. A lot of the fervor over personal computers was about empowerment - individual people could now operate and have control over their own computer, pushing power away from the center. With the rise of the Internet and especially the Web, we started to hear about network effects - the idea that when you hook computers together they become even more powerful and useful. There was interconnection but also democratization (and manifestos that seem quaint today but were really inspiring back then). The Internet was designed to be a decentralized system, and it was supposed to upset the balance of power.

The so-called Web 2.0 made the internet even more useful in many ways - it enabled collaboration on a huge scale and let us access our data from anywhere. It also brought the idea of the social graph or social networking to our attention. But it also marks a huge re-centralization. Instead of keeping our data on our own personal computers (or before that, in files) and under our own control, we've started to disperse our data across the net in various web sites. True, this is still decentralized in a way (multiple web sites), but each of these sites represents one central entity controlling many users' data.

We've done this mainly because it's convenient and/or useful - we can access email from any web browser rather than having to go home or carry a laptop. But we also give away control over our data. Most cases companies use this data for benign purposes, such as gathering aggregate marketing data to sell to pay the bills. But web sites can be hacked and web companies can go bankrupt or get acquired by less scrupulous companies.

Recently, groups such as autonomo.us have started to look for ways to decentralize things again. It seems to me that the conversation is mainly about changing free/open-source licenses so web sites have to publish their source code and provide APIs or import/export functions so users can retrieve their data. To me this is great but also unsatisfying.

Which brings me to my point:

What if we could have both the decentralization advantages of personal computers and the network effects of the internet and Web2.0, but without the centralization of Big Data? What if individual users could have web applications that they could control themselves, but which enabled them to access their data from anywhere and control who else had access to it? What if all these personal web apps could talk to each other and create a decentralized social graph that's under the control of users rather than a company?