Advertisement
  1. Code
  2. Social Media
Code

Revisiting Open Source Social Networking Alternatives

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called Revisiting Open Source Social Networking Alternatives.
Revisiting Open Source Social Networking: Installing GNU Social
Final product image
What You'll Be Creating

Talk about 15 minutes of fame: upstart social networking startup Ello burst on the scene in September with promises of a utopian, post-Facebook platform that respected user's privacy. I was surprised to see so many public figures and media entities jump on board—mainly because of what Ello isn't. It isn't an open source, decentralized social networking technology. It's just another privately held, VC-funded silo.

Perhaps I'll get excited when BoingBoing posts there a second time ("we're not entirely sure what we're doing here yet") or if I get an invite; probably not.

BoingBoing at Elloco

In reality, the road to a usable open source social networking technology is paved with the wreckage of good intentions.

Remember Diaspora? In 2010, it raised $200,641 on Kickstarter to take on Facebook with "an open source personal web server to share all your stuff online." Two years later, they essentially gave up, leaving their code to the open source community to carry forward.

How about OpenSocial? "This site may be hacked."

Whats Left of Open Social

Guess that didn't work out that well either. That was 2007, and count me among the idealists with faded dreams. I didn't even keep my blog posts up—you have to read them on Archive.org.

Even today, researching open source social networking alternatives online is a bit like reading about star couples in the entertainment tabloids; it's hard to tell who's dated who, who's on their own and who's still together.

Diaspora's still around. Identi.ca (not to be confused with Friendica) became Status.net which is now Pump.io but if you want to try it out you have to visit Ephemeral Me. There's Tent.io which you used to be able to try out at Tent.is but is now Cupcake.io. Diaspora and Tent considered getting together but decided not to. Still with me? Good, because Status.net is now part of GNU Social. There's Feedly which became the Stream Framework with SaaS commercial partner GetStream.io. And, don't forget BuddyCloud or the Activity Streams standard. And that's just branding and relationship status, it says nothing about the actual quality, viability or status of these technologies.

If you're not overwhelmed yet and haven't despondently clicked back over to check your Facebook account, someone at Wikipedia has compiled this questionably helpful comparison of software and protocols for distributed social networking. I apologize if I left out or misunderstood your awesome project but honestly folks, it's really hard for people to figure out what your technology is doing and whether it's worth investigating.

For this series, I'm going to introduce you to six of these technologies:

  1. Diaspora
  2. Pump.io
  3. GNU Social
  4. Tent.io
  5. GetStream.io
  6. BuddyCloud

This article will briefly walk through the state of these solutions, and in part two I'll walk you through installing the most compelling contenders.

An Overview of Current Technologies

1. Diaspora

Diaspora is written in Ruby and has a federated server model with 54 "pods" running. The latest release was in September 2014. One blogger reported that in the wake of Ello's VC funding disclosure, Diaspora usage doubled to 25,000 users.

You can sign up at any of the open pods listed here, but good luck figuring out which might be a good one to try. For example, I decided to try one of the more populous "open" pods in the US, ShrekIsLove. Here's what I found:

ShrekIsLove - a diaspora site

 Kind of makes me long for a clean blue Facebook logo. Sign up is a bit smoother:

Sign up at Diaspora

Here's what the profile configuration page looks like:

Profile configuration with Diaspora

The timeline page is more friendly, although posting is a bit rough around the edges. In my opinion, "you can use Markdown to format your post" isn't really a positive thing (sorry @gruber).

The Diaspora timeline

Preview is integrated with geolocation and images but still a bit rough around the edges:

Posting with Diaspora

There's some very solid functional progress but it's still extremely rough around the edges. Diaspora certainly isn't dead, but I don't clearly see a trajectory yet towards being something I would adopt.

2. Pump.io

Pump is led by open source social networking veteran Evan Prodromou and is written in Node.js. Evan wrote Status.net but turned it over to GNU in order to focus on the new Pump.io platform.

Pumpio home page

To try Pump.io, register at Ephemeral Me. It's very clean and Twitter-like (yeah, Bootstrap):

Ephemeral me home page

Here's the signup page:

Register with Ephemeral Me Pumpio

And, the profile signup:

Profile configuration for Pumpio

Here's the posting dialog—sort of presented as if you're emailing your followers. I found the usability of the posting functionality to be a bit poor.

Posting with Pumpio

Here's what the stream looks like. I didn't see any activity here, so it wasn't clear how to connect with others or build my network:

The Pumpio Timeline

This is the second time I've tried out Pump.io and each time I've been a bit underwhelmed. They've done some solid work but the end-user experience isn't yet at a level that draws me in.

3. GNU Social

GNU Social evolved from Prodromou's Status.net project and other GNU code. It's written in PHP, which I think is helpful for sustaining open source participation.

GNU Social Home Page

Some of the public networks you can join are Quitter (in various countries):

Quitter - GNU Social

Here's the signup page:

Sign Up With GNU Social

The timeline interface was surprisingly clean and functional. I could very quickly find other people as well. Posting was super simple but with limited functionality. This is currently a Twitter-clone.

The GNU Social Timeline

I was pleasantly surprised by how clean the interface was. By trying to be simply Twitter-like, I think they've done a solid job providing some of the basic features in a federated social network.

4. Tent.io

Tent is a public API with primary implementations in Ruby; I was also able to find secondary implementations in PHP. It was difficult to determine the status of Tent implementations, both servers and client. From what I can tell, there is no stable reference server code available yet. But Tent aspires to be more than many of the other platforms, as you'll see.

Tentio home page

To try out Tent, you have to visit Cupcake.io (are you starting to notice that no one in this space thinks deeply about branding?):

Sign Up with Tentios Cupcakeio

Here's the profile page—notice the navigation on the left:

The profile page for Tentio

Here's the timeline and posting functionality. A relatively clean Twitter-like presentation:

Posting with Tentio

Here's an example of where Tent goes beyond the others, e.g. file sharing:

File uploading with Tent

And I liked that they have an API console of sorts built into their client:

API console with Tent

The usability of Tent's Cupcake client was by far the cleanest and best-organized of all the platforms. However, I find their documentation and links to code to be quite incomplete and confusing in their lack of specifics. Exhibit A: their blog has virtually no content. I think the work here has merit and potential, but their communication needs to improve. I just wasn't sure where to engage. In fact, I was a bit concerned that any engagement would be wasted.

5. Commercial Open Source Approaches

I decided to check out a couple of platforms that emphasize the commercial aspects of their work while offering it via open source. The results were mixed.

a) GetStream.io

GetStream.io has a beautifully designed site and an excellent tutorial and documentation for using their API. The founder Thierry even sent me a nice email with links to some pertinent libraries after I signed up, which showed positive engagement. 

While they clearly link to their open source Python Stream Framework, their emphasis seems to be helping people use their hosted platform to build private label social networks. To me, this is less interesting than the approach of other platforms which are federated and largely open source by design:

GetStreamio home page

Check out their API tutorial, it's a nice piece of educational design: 

GetStreamio API Tutorial

They provide examples for different languages of how to work with the API, and show the effect on an imaginary mobile app:

GetStreamio API Tutorial - part 2

b) BuddyCloud

BuddyCloud offers its work open source and provides an API, but again it appears to lack an emphasis on federation. 

Buddy Cloud Home Page

You can demo BuddyCloud here:

Demo BuddyCloud

The design didn't appeal to me:

BuddyCloud Timeline

What Have We Learned

First, let's give kudos and a shoutout to all these folks and the people who I didn't have time to include. Taking back social networking into the open source fold is extremely important, and these people have put real heart, time and effort into building solutions, many viable.

They've also done a great job emphasizing data ownership, APIs, and open source. The effort they've put in to building decentralized systems is hugely important.

There are some areas that I feel are still weak all around:

  • Communication and documentation to describe what they're doing, its status, what technologies and standards they adhere to, and product roadmaps.
  • Clarifying what their aspirations are for decentralization and interoperability with other networks.
  • Doing well at the most important elements of the user experience, such as posting and timeline. The simplicity of posting to Facebook is one of the things that makes it work so well. There's very little sophistication on the client-side, e.g. Javascript/AJAX, with most of these tools. There needs to be much more; Ghost's interface efforts would be a model to learn from.

In the next part of this series, I'll highlight approaches that I think will be needed for the open source community to succeed at social networking. And I'll walk you through installing the best of these technologies.

If you have any feedback, suggestions, or corrections, please post them in the comments. I'd especially like to hear if I missed any important technologies. 

If you'd like to keep up on my future Tuts+ tutorials and other series, please follow @reifman or visit my author page.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.