Lessons Diaspora Taught Me

My experiences with Diaspora and lessons I believe we should learn from it.

I have had a mixed relationship with diaspora (D*) over the past couple of years. It was my first serious introduction to the federated social web and I was initially extremely excited about it.

I found out about it via some media outlet, I forget which, during their push for funds through kickstarter. I never requested an invite to the official beta pod, but created an account on the Diasp.org pod.

Long story short, I was active on D* for about a year, and gained quite a following, before ditching it for the following reasons:

  • Little sign of a useful API
  • Extremely inefficient federation protocols, lack of dev interest in federation and data portability
  • Prioritisation of eye-candy features that had little real use over sharing/solid functionality
  • Most of all: when the leading figures in an open source project barely respond to any user feedback, and alienate a prominent unofficial contributor who had contributed a great deal, something has gone wrong.

Diaspora has by no means failed to create a federated social network, but in my opinion it contributes little to the tangible federated social web.

Regardless, I applaud the developers for going out on a limb, actually creating something and proving it was possible. D* is an excellent case study for the rest of the federated social web, and here's what I think we can learn from them:

What they got Right

I've dwelt a lot on the negatives so far, so let's cover some of the things that D* excels at and have contributed much to.

Hashtags

As pointed out by Brennan Novak, hashtags are, on the whole, undervalued and under implemented. Not so by Diaspora — their hashtag model is exemplary and, unlike twitter's anaemic implementation, useful:

  • Hashtags can be followed
  • Hashtags have pages of their own containing all related activity
  • New users announce themselves with a 'new here' post tagged with any Hashtags they're interested in

All this adds together to create a discovery experience that other services would do well to learn from.

Seamless use of some open protocols

Namely webfinger. D* uses webfinger for all user discovery and it works brilliantly. As was always intended, it is completely seamless on the UX side, with no mention of the ugly ’accnt:’ syntax in sight.

I personally am against webfinger and believe that it will be superseded by URIs, but that is subject for another article. The point is, D* made it work.

Security + Privacy

D* was security/privacy oriented from the start. It was diaspora that initially implemented "aspects" (a.k.a. "circles" in G+). I don't actually like the idea of circles/aspects as much as I like Brennan Novak's concentric circles idea, but again, you have to hand it to D* for going ahead and implementing the damn things. Without people actually trying these things we have no real idea whether or not they'll work.

I believe their focus on privacy has actually counted against them in some areas. For a start, it attracted a user base consisting of large numbers of anarchists and political activists, who I suspect influenced some design directions. For example, there was talk at one point of making 'public' posts only visible to people on diaspora. To me, this was ridiculous and non-webby, but to many it was necessary — they didn't want the "evil google" getting hold of their content.

The Uglies

Federation is Difficult

Or more accurately, federation is easy, but maintaining the standard "social network" experience without seriously compromising federation is tricky.

The original D* model involved any profile and post being copied to any server it was viewed on. Not only is this wasteful, it rather subverts the privacy emphasis — you only need one rogue pod owner to expose "private" content. Also, when people move their accounts to a different server (a feature much hyped but not implemented), how long must it take for the changes to propagate everywhere?

As I left D*, there was talk of changes the to federation protocol. Whether or not they will be implemented, or be a significant improvement I cannot tell, but it's great to see the devs are learning from their experiences.