tent.io, a new hope for open & federated social networking?

Last week, Jan Wildeboer posted something that caught my attention:

Let's try to connect tent.is to my G+ stream. Do you know tent.is? It's decentralized. Open. Check it out. I am jwildeboer.tent.is for the moment and will run it on my own server soon.

Huh, what? tent.is? At that time, I never heard of it, despite the project existed for a few months already. As I then found out, tent.is is only the first microblogging app for tent.io, the part which is actually important.

Well, the facts are that tent.io is a decentralized, federated and open protocol for social networking and tent.is is a tent.io app providing a microblogging service over the tent.io protocol. But didn't we heard that many times in the past? All those federated social networks, status.net, Diaspora*, friendica, and what else might be lurking somewhere on the internet, don't they already do this?

That's right to some degree, but tent.io is something else. Actually, it's the only federated social network out there which has the potential to really fulfill what I expect from a social network. To make it clear why tent.io has this potential to be great, I'll first point out the flaws of Diaspora and status.net, the biggest federated social networks existing and the networks I'm still using today.

Diaspora*

In April 2010, Diaspora*, of great kickstarter fame, actually was the new hope for many to be "the new facebook", at least the facebook for tech people. In August 2012, the founders abandoned, ahem, handed over the project to the community, to create something like a bad meme generator called makr.io to unleash the creativity of their users. Or something similar.

On the one hand, this could be the death of the project in case there's no one in the community who will step up, write code and make decisions.

On the other hand, as mean as it sounds, but when you look at makr.io, couldn't it be good that they're gone?

As great as Diaspora* looked in the beginning, there are three main problems it currently faces.

The first is that they never managed to create a working native client for any platform at all. Many people say a web interface is enough, but at least I still insist on a real native app for my phone and my computer.

But it's not only that they never finished a documented protocol on how a client could connect to Diaspora. The second problem is that they never managed to document and to finalize the protocol Diaspora pods use for server to server communication either. Therefore, in theory, nobody could write something like a gateway between Diaspora and for example status.net. Right? But wasn't that the promise of federated networking? That I could talk to status.net users from Diaspora?

Well, friendica actually implemented the protocol in php, despite it could have changed at any given time, wasn't documented at all and a complete redesign of the protocol was actually announced. But so far, that never happened and the friendica implementation works astonishingly well.

That's the third problem: From an external (->my) point of view, the development of Diaspora has stalled. The last noticeable change was in February 2012, they added an "artistic view" of your posts, with one single central post per page, the posted image in the background, and comments and likes somewhere at the bottom. To unleash creativity and give the users artistic expression in their posts. From the current viewpoint, after makr.io was released, this has to be seen as the first sign of them leaving.

Maybe the community will actually take up the development of Diaspora. But creating and specifying protocols for server to server and and client to server communication is a huge task and much more challenging than sending in patches for bugs and cleaning up code. That needs a vision, and the courage and time to implement them. Now after the complete core team does something else, I don't expect that to happen anymore. I was a big fan of Diaspora from the start, but today, I'm disillusioned and disappointed with the development.

Status.net

Status.net stepped up to be a drop-in replacement for twitter, to be fully api-compatible. "A twitter client only needs to change the url from twitter.com to identi.ca or whatever status.net provider the user has an account for", that's the promise of status.net. And that's exactly what they fulfilled. I fail to understand how people complaining over twitter can deny that.

You can argue about the quality of the web interface, but because of the api-compability, most open source twitter clients can be used for status.net, too - no need for the web interface. Maybe that's the reason why status.net seems to be the most widely used federated network in the open source community.

Because it's written in php it's not that hard to setup your own server, there's a twitter gateway plugin to enable you to send and receive messages from twitter, and the protocols are documented. What else could one demand, except more users?

From the development side, status.net has reached it's goals. The last fundamental change in status.net was the redesign of the web interface, which went along with the introduction of polls and bookmarks. Nothing left to do than this, as fundemantally new features would break the twiter compatibility. (üAThis was the time when I needed to leave the !linux group, because the "Which distro do you use?"-Pollspam was unbearable.) Status.net is essentially finished.

The problem of status.net isn't something the code can handle. For many, it's about the community, it's just that it has to few users. And even large parts of the open source community are moving to Google+ lately, it seems like Fabian Scherschel set a trend in that regard. For me, microblogging feels limiting, too, 140characters are usualy about the half of the shortest posts I want to made, and I end up crippling words and punctuation to make it fit in. In that regard, Diaspora (and Google+, as in the past, they were not that different) are a lot easier for me.

tent.io

In my opinion, tent.io has the potential to be the open source, open and federated pendant to the recenctly hyped app.net. tent.io is nothing more than a protocol for client to server and server to server communication for decentralized and federated social data. In the protocol, a post can currently be of the type status message (256characters, finally enough for me yay), essay (the equivalent to a diaspora/g+ post), image or image album. Groups and moving between servers is already specified.

That's the complete opposite of Diaspora - they first implemented their network and then wanted to specify the protocol later. tent.io does it the way it should be, design a protocol and have a reference implementation for each part. The server reference implementation is called tentd, and the client reference implementation is the web-based tent.is, essentially a twitter clone supporting only status posts at the moment. Noticed something? The server and the web interface are decoupled, instead of being meld together in one big thing like with Diaspora or status.net.

The default web interface for tent.io is just an application. The client to server protocol is in there and used from the beginning. Even the account settings and oauth approval page is just an app called tent-admin and in no way bundled with the tentd server. Now isn't that great a great design?

Conclusion

The beauty of tent.io is that it's really just a general protocol that can be used to build social networks in which all users can communicate with each other. After a few months of development, tent.io managed to be more in this regard than Diaspora ever was. It's what I hoped to happen with Diaspora, but what I don't believe that will happen anymore.

I hope that one day, I can use tent.io to send and receive posts from and to status.net and Google+, the networks that matter to me most. I hope that there'll be gateways between tent.io and these networks, similar to jabber-icq gateways. I hope that there'll be tent.io clients for every platform that I use. I hope that I can provide tent.io accounts on my server for my close friends, like I do with jabber.

That's why I'll invest time & energy in tent.io.

To come to an end (by the way, thanks for actually reading this huge post ;) ): As long as I don't have my own tentd running, I'm https://florianjacob.tent.is. Freetards, unite!

Remarks? Additions? Corrections? For anything you want to tell me about this blog post, feel free to send me an email.
Despite having no comments section (isn't that easy with a static site generator and without relying on a proprietary 3rd party service), I greatly appreciate direct feedback. ;) In case of additions, I'll mention the name from the mail if you don't object.