De-centralised social networks and Drupal

While centralised (or at least single-point of control) social networks are dominant right now, social networking is really something bigger that what any one company should handle. Work is underway to provide the necessary technology stack to achieve that and we would love to see Drupal lead the way the same way it has done with Semantic Web technologies. This is hopefully just our one of many contributions in that direction. We set the scene and figure out what would be a good, practical first goal.

The choice

Social networking via the Internet is going to play a crucial role in our lives for years to come. This is the reason that the battle for control of the "social graph" - the information about who we are connected with in what ways - is already well underway with all the big companies trying to contol or have access to as much of it as possible.

The basic choice is this:

Do we hand all the information to just a few big companies to control and distribute or do we each attempt to control our own bit of the social graph exercising more control about who we share it with.

This is not just an ideological debate (big company interests vs power to the people) it is a very practical issue. Can you allow such as important part of information be controlled by just one company? By comparison, imagine if all the websites in the world where hosted by the same company and all the networks were controlled by the same organisation. That isn't really an Internet is it?

The current state of play

The bad news at this point is that single point of control architectures are winning. Facebook and Twitter and their kin control the social graph. The good news is that work on de-centralised social networks is already well underway. To list just a few examples:

OStatus is a set of specifications that together can form the conceptual and technological basis to allow people to link up and follow each other on different networks in a transparent way.

WebID is a means to identify yourself using reach semantics while FOAF + ssl takes this identity information and adds a secure authentication layer to it.

These are not just theoretical solutions or simply specification a committee dreamt up. They are all technologies that work today.

Drupal and the de-centralised Web

So where does Drupal come in the picture? Drupal is used daily to built social networking sites and the numbers are almost certain to grow. To take as an example just one company I am involved with - Brightlemon - has about 1.125 million users on Drupal sites. If one were to put together just the bigger Drupal shops these numbers would grow exponentially.

Now imagine all these sites giving people the ability to handle their identity information in a de-centralised fashion. Being able to join in on conversations across sites and handle different types of identities. Imagine Drupal Gardens enabling you to quickly set-up your own site where you handle your identity and manage your interactions.

Implementing some of the technologies mentioned above as Drupal modules would take us a long way along that path.

So where do things stand?

Well, PubSubHubbub - one of the key Ostatus technologies - is possible in Drupal both as a consumer of information from PubSubHubub servers via the Feeds module and as a hub via the PubSubHubbub module.

What are you doing about it?

Here at Istos we would love to see a set of Drupal 7 modules that provide support for the complete OStatus stack and see where FOAF+ssl could fit into that. The first step we are working towards at is to provide support for Activity Streams for the Drupal 7 port of the Activity module (thanks Scott!). Then we would like to combine these with the PubSubHubbub work to have a working example of Drupal users across Drupal sites subscribing to each other's activity streams.

We will be writing more about the work we are doing and are hoping to catch up with other people interested in these stuff at the Copenhagen DrupalCon.

Comments

I agree the future of the web relies on de-centralised identities. It will be that or a 1984 like Big Brother=Facebook controlled nightmare.

So yes, we need to start building the tools to make it possible, affordable and easy and I'd like Drupal to play a leading role on this. I think we have like half of the modules we need for that, just some more work is needed.

I am 1000% with you on the need for a decentralized version of the social graph, or social networking, or social media, or whatever the in-term is these days. People don't realize just what they're giving up with the mega sites.

Also, Palantir.net and GoingOn have been collaborating on some cool stuff with PubSbHubbub recently that we are planning to release very soon, just as soon as the project it was written for launches. Details will show up on the Planet, but for now I can say Views + Feeds + PubSubHubbub + a little fairy dust = Sweet. :-)

And, what did we do when we needed to connect all our subsites? We rolled our own solution (Bakery). If you have some time to volunteer, this might be an area of the Drupal.org redesign that you might still be able to help with.

I think that Salmon is probably the piece that the widest number of people would install -- everything from individual bloggers on Drupal to large publishers that want to keep the discussion around their articles on their site.

Absolutely. Drupal is in a great position to play an instrumental role in creating a Distributed Social Web.

But not if we don't get our sh* together.

Standards like PubSubHubbub, Activity streams, OpenID, OAuth, WebFinger are starting to see very promising adoption, but especially their support in Drupal is in regards to robustness and ease of deployment nowhere near where it should be.

Or when was the last time you turned on a combination of the above and it just worked? :P

I am maintainer of two of the modules you mention (Feeds and PubsubHubbub hub). Here is what I see is missing in Drupal at the moment:

- Robust OAuth support (OAuth Common module is promising, needs debugging and improved UI).
- PubSubHubbub publisher support (PuSH Hub skips the PuSH publisher protocol by making the publisher a hub).
- Complete OpenID support (core module only working with crutches against Google atm).
- Complete PubSubHubbub subscriber support in Feeds (#721428)
- Activity Streams - a huge challenge given Drupal's flexible display stack. I see you guys are picking this up. Awesome.
- Like Boris Mann, I am dreaming of Salmon. Looks like Walkah has it in the cross hair.
- Especially PubsubHubbub, OAuth and OpenID are very active communities at the moment that can use sharp minds to cut through the engineering and usability challenges that the Distributed Social Web poses - sign up to their mailing lists and get involved.

I am thrilled to see more work happening in this field. Hit me up on IRC if you need anything.

Count me in for some man-hours to reverse this horrid centralization trend. I'm not sure quite where I fit in. Perhaps I'll work on some identity stuff. First I heard of WebID. Looks good but ugh. We've worked for years to get the adoption that OpenID has.

Really great to see that people are behind this stuff. @moshe, @boris, @alex identity may well what breaks it or makes it. WebID seems like a cool idea but I could easily list 10 big problems with it (starting with all browsers should support it in the same user-friendly way... and we know how good browsers are at doing everything in the same way). Still a problem worth dealing with, nonetheless!