A few hours ago I came home from a meeting at Maklab entitled Blether about open source, Scotland and Paul Mason's "PostCapitalism", and my head has been buzzing ever since.
At some point during the meeting, Alistair Davidson said something about Web 2.0 essentially being about moving all software functionality to servers instead of focusing on selling programs (compare Gmail with old-fashioned email clients). A general discussion followed, and suddenly it all clicked into place for me: In an Open Source and social media context, we need to talk less about programs and more about data.
The reason no email client could ever become a monopoly was because the email protocol is quite simple, and any decent programmer can easily write an email client.
The reason it's so hard to compete with Facebook (even Google+ couldn't do it although Google threw lots of resources after it, and many other efforts such as Diaspora and Ello never really stood a chance) is because it's the social network you've built up inside it that's important, not the software itself. Lots of people would leave Facebook tomorrow if they could take their network with them, but they can't, so they don't.
Now imagine if your social network data -- your connexions, your photos, your posts, your likes and retweets -- were all held on a independent server (this could be run by the UN, by a charity financed by Google, by a network of volunteers or even by a private company owned by Facebook, Twitter and LinkedIn in conjunction). This server wouldn't provide a nice interface -- you definitely wouldn't want to use it for your social networking -- but it would hold all your data and interact with all the social media websites.
So if you clicked "like" on a story in Facebook, the like would get stored on this server instead of Facebook's, and if you later decided to move to Google+ instead, your like would still be there (even if would potentially look rather different). Importantly, you wouldn't need to know which client your friend whose update you liked was using. Effectively, all the social networks would become one from a data point-of-view. Effectively, your thoughts would again be your own and you would simply allow social media clients to interact with them.
Some people would then use one social network client for everything, while others would still use Facebook for family and friends, LinkedIn for business, Twitter for thinking aloud, Flickr for DSLR photos, Instagram for smartphone photos, Spotify for music, etc., etc. It wouldn't matter, and you could change your clients at any time.
In order to survive, Facebook and the other websites would need to start competing on providing the best user experience rather than trying to help you build up a huge network and then make it difficult to leave. And if somebody decided to create an Open Source social media client, they would immediately have access to people's social networks and wouldn't need to spend time and money on building them up afresh on huge and expensive servers.
Of course Facebook and its competitors won't like this idea, but it's the kind of thing that antitrust legislation could force through. It would definitely be much more useful than breaking Facebook into two parts (because only the half that retained the network would survive).