Fediverse: Own Your Social Graph

31 October, 2018 07:00AM ยท 6 minute read

Imagine a world where you could pick and choose what server backend you wanted for your social media (if you want to - like picking a bank to bank with?), pick a social media identity that is truly canonical for all time (you know, like your name is in the real world), and pick whatever application(s) you want to use on your platform of choice so you get to interact the same way no matter who you’re talking to. They’re ALL your choices. Are we there yet?


This is the story so far as we all collectively (hopefully) move towards that goal.

In April 2017 I wrote about Engineered Space and recorded an episode of Pragmatic about my experiment with Mastodon. I was attempting to ‘take control’ of my Social Graph and Mastodon held a promise of that.

The reality hasn’t entirely lived up to expectations for me so far, although I still prefer it to Twitter and Facebook. The truth is that currently Mastodon is still a silo of a sort, which I discovered as I attempted to move to a different platform.

One EMail-like social address to rule them all

When I started @chidgey@engineered.space I had a longer-term intention in mind: purchase a domain that I liked, and then with OStatus and now ActivityPub, it should be possible to use whatever standards-compliant backend server setup I wanted, and I should be able to retain the same Fediverse username for all time.

Not only that, I could also then choose whatever front-end client I wanted to and it would connect to the standards-compliant backend server infrastructure I was running.

What’s Wrong With Mastodon?

There’s three issues I have: how it’s having its feature-set prioritised, a lack of testing for upgrades with regular mis-steps, and finally it’s resource-hungry. I was running my instance that had only my account on it and about 10 others with minimal traffic, on a VPS with 1.6GB RAM, a reasonable CPU and if I tried to refresh my timeline it would regularly throw a 502 error. Image posts regularly failed, it would also completely fall over once or twice every week requiring a server reboot to recover with no obvious cause. In short, it became a hassle.

The production guide to install Mastodon is very good though, with plenty of examples for different Linux distros to install it on and it takes a bit of effort requiring Rails, PostgreSQL, Redis, Sidekiq, NodeJS and ElasticSearch (if you want search functionality at all). It also wouldn’t install and run on Centos 6 and whilst I don’t mind admitting that Centos 6 has had its day, sometimes you can snag a cheap VPS that won’t run Centos 7. Upgrading required a series of git pulls, rake commands and database migrations and could take half an hour to fully compile, requiring me to kill the NGINX server or it would never complete.

I was advised to throw more money at the problem. I could upsize my VPS at more expense or I could shift my hosting elsewhere and let someone else deal with it. Altenatively, I could look for a different ActivityPub compliant platform…


Lain walks through what Pleroma is and I won’t repeat that but essentially it’s 90% of what Mastodon is but only requires Elixir and PostgreSQL, it runs on Centos 6 (although you won’t find any Production guides for that) and it’s happily running on a Speedy KVM VPS (DAL-VOL0), 1 E3-1230 3.2Ghz CPU, 256MB ECC RAM, 12GB HDD for $18USD/yr. If it keeps chugging along nicely, I’ll fork out for three years for $36USD ($1/month).

Not only is it cheap to run, it’s quick. I can refresh and refresh and fill gaps in my timeline and it responds in a second or two and never fails. Uploading images works every time now and if you’re like me and you’re not really into the TweetDeck-esque Mastodon FrontEnd (Pleroma offers this front-end option if you really want it though) then it has a far more Twitter-eque Pleroma FrontEnd that I much prefer.

Before you think “John’s ready to marry Pleroma…” stop. It’s not perfect. In fact there’s a few significant drawbacks:

On the plus side some of my favourite Mastodon apps work almost perfectly with it (notifications generally not withstanding):



All of the above notwithstanding, there’s a strong beating of the open-source drum by the development team on Pleroma. Whilst Gargon on Mastodon makes no bones with the fact he wouldn’t mind if Twitter collapsed tomorrow, he supports whatever clients, forks of Mastdon, other projects that support ActivityPub in whatever form they might take. The Pleroma team on the other hand have actively and aggressively shamed non-open source developers trying to get more involved with Pleroma. I’ve seen sole developers that are making apps that are free but closed-source, paid and closed-source, and even federated services like Micro.Blog trying to open up connectivity with Mastodon be shunned all becuase they aren’t open source.

The future of federation will ultimately be a blend of open and closed source software running on servers and clients from different groups, inividuals and companies around the world, all talking on a common standard or sub-set of standards. The fear that one closed-source player will “take over” neglects the nuance that people will vote with their feet and that if a corporation does wrong by their users, they will eventulally abandon that server for another (like many have abandoned Twitter for Mastodon already).

“Open Source” mantra is an idealology, not

Pleroma need to consider their position in the cross-platform game, supporting other standards to improve operability and usability otherwise they will be outgrown by Mastodon and will become irrelevant before they start.

Attempting to Migrate

Mastodon provides the ability to export a user list as a CSV: this worked as expected. Pleroma also imported what it could, but when instances are offline (I discovered I wasn’t the only Mastodon instance that was regularly offline) if Pleroma couldn’t verify that an imported user actually existed it wouldn’t add it to the follows list. Over the duration of a week I successfully added all but 6 of my follower list progressively with the import script in Pleroma smart enough to not create duplicates.

Exporting my “Toot” history proved impossible through the web interface in Mastodon. I tried many times and it failed every single time.