I, For One, welcome our new pachyderm overlords.
It's exciting days on the internet as the Twitter failwhale finally seems to be falling for good, all thanks to the God Emperor of Mars and his magic sink.
In its place, a new social media platform rises from obscurity into mainstream attention: Mastodon. Thankfully, it’s not just another monolithic and closed ecosystem this time: This time, the people are taking the power back.
I had created a Mastodon account a year or two earlier, but ended up deleting it as I wasn’t really paying much attention, didn’t know a lot of people actively using it and pretty much forgot about it for a long time. I once again got stuck on the fundamental problem that hits everyone looking into Mastodon for the first time: Which instance do I join?
Mastodon is a federated system, meaning that it consists not of one service controlled by one entity, but a network of services communicating using a common protocol (ActivityPub). In theory this is a great strength from a user perspective. Instead of being beholden to a single entity and its whims, we now get to be beholden to a single entity, its whims, and the collective whims of all the other entities that make up the fediverse. It’s no longer the employees of a Silicon Valley megacorp reading your DMs, instead it’s a random teenager in an Australian suburb.
All kidding aside, choosing an instance is indeed a headache.
Previously, I had an account on the Swedish server mastodon.acc.umu.se, run by a computer club at my former university. Since I used to have an account there but closed it, my preferred username was now forfeit. If I wanted to keep that name, I would need to find a new home. This time I decided to go with one of the large instances run by Gargron, the developer of Mastodon: mastodon.online. This quickly turned out to have been a poor decision.
As could have been foreseen, the vast majority of everyone streaming in from Twitter made the same choice. The large instances quickly got overwhelmed, especially once big names like Stephen Fry and Neil Gaiman jumped ship. Meanwhile, many second tier instances experienced the same thing, and quickly closed registrations one by one.
Now, I am convinced that this is a temporary problem that will sort itself out if Mastodon does catch on on a large scale.
The software itself will receive a lot of developer attention and get optimized, this is one of the beautiful things about free software. People will naturally want to migrate away from large instances and seek out small instances that still accept newcomers, and so over time the load will balance itself out.
I also think that it’s incumbent upon organizations and individuals with the means to do so to host their own instances, and so eventually the problem of finding an instance will be similar to finding an email address: People will end up having access to more instances than they know what to do with.
Since I can, and have my own little tech company to run things under, I decided to go that route: I have set up my own instance at 6510.nu.
As it turns out, setting up your own instance isn’t too painful if you’ve got some Linux administration experience. There is an official guide available, it’s mostly up to date and correct, and the few places where there are gaps are easy enough to figure out.
My main concern as I was following the guide is the sheer complexity of the Mastodon application. It is constructed like a proper Enterprise service, and probably requires the same level of maintenance and care to continue functioning as its Enterprise equivalents. Running an instance involves Ruby on Rails, PostgreSQL, Redis, Node.js, cloud storage, SMTP connections and more. Keeping the service running for years is likely to be an ongoing challenge of handling version updates and rewrites as dependencies shift over time. For the large instances this is probably fine, and they will probably spread the component parts across different hosts in order to scale further. But given that the goal of a federated universe is for many small instances to bloom, it would have been nice to see something a bit more self-contained. Personally, if I were to write an Twitter-like ActivityPub service, I would look into running it as a single Rust or Go binary together with something as simple as a sqlite database to start with. For most single-user instances this should be absolutely enough, and a more efficient implementation would make it easier for people to host their instances off a raspberry pi or something on that scale.
Migrating my account from mastodon.online to my new instance at 6510.nu was also quite simple. Transferring followers and other social graph data was as easy as exporting a set of CSV files on the old server and importing them on the new one. Unfortunately, while exporting posts and other data is possible, there is currently no way to actually import them on the new server. This should at least in theory be a solvable problem, though I do understand the complexities of this, and I am sure it will probably be possible to bring posts along when moving in the future. For now my old posts remain on mastodon.online with a notice directing people to my new location. Of course if you are having to move your account because the instance you were on is disappearing, this is not good enough.
All in all, it is early days for Mastodon as a major social network, and it shows. However, I am actually excited that we finally have a real means to communicate with each other that isn’t owned by a single corporation.
Find me on Mastodon at 6510.nu/@krig.