2018-09-07: OStatus, ActivityPub, Mastodon, one year later

Over a year ago now I wrapped up an experiment in using GNU Social to interface with the Fediverse of Mastodon instances and concluded that if you wanted in on that party, you needed to be running (or join) a Mastodon instance. I ended up closing down my GNU Social instance due to a combination of concern at its lack of respect for Mastodon privacy settings, and social pressure from Mastodon instance admins over the same. I moved to a friend's Mastodon instance, and generally put the whole Fediverse thing on the back-burner.

Recently though Twitter's been making some bad decisions. I mean some real bad decisions. I'd grown interest in returning to the Fediverse as my main social watering hole, and apparently so did a lot of people. I was one of the first to return, a few days ahead of the giant wave that'd follow when the API changes broke most Twitter third party clients. That gave me time to settle in, look around, and discover what had changed.

I still wanted to run my own instance, but Mastodon had moved primarily to using ActivityPub for its federation protocol and, while it would still fall back to OStatus when it had to, I was right in my prior predictions that the feature split would continue to push GNU Social out of the Fediverse. Certain post types refuse to federate over OStatus at all and GNU Social instances are typically seen socially as troublesome and a lot of instances block them outright for privacy and security reasons. To be clear: I applaud this; in my prior write-up I had noted that Mastodon needed to go another way with its federation protocol, this is certainly "another way".

It would be unfair of me to not note that apparently ActivityPub support is coming for GNU Social but ehhhh... I don't have much faith that we'll see it; and if we do, I don't have much faith they'll support the full feature set to make them a first class player in the new Fediverse.

In any event, I wasn't about to set up Mastodon just for myself. My primary criticisms at the time were it was complicated to set up (especially if you don't like Docker, like myself), complicated to administrate, bloated, resource-heavy, and utilized way too many technologies to have coherent development direction. If anything those criticisms have grown stronger since Mastodon 2.0. It gets the job done and I'm glad it exists, but "Bloated mess" is just the start of the terms I'd use to describe it on a technical level. I thought I was stuck using friend's instances until I discovered Pleroma.

Pleroma is a sort of neo-GNU Social. It's written in Elixir, which is a sort of Erlang VM "thing" much like Jython is a Java VM "thing". It's built to be fast, lightweight, and simple to use and administrate. Pleroma's goal is mainly small instances: single users, small peer groups, etc. So in other words, perfect for my purposes. I resurrected social.voidfox.com (my first mistake-- maybe more on that later) and threw Pleroma on it. Setup was a little dicey because it's a very new project in the "Documentation happens to other people" stage, but I did okay over a day or so.

So how did things go? Well, there's some social concerns. Pleroma has a lot of missions and POVs that GNU Social does/did, and aims to have at least some kind of out-of-box parity with GNU Social. As a result, a lot of people who are into the Fediverse enough to know of its existence are wary of it. A lot of questionable instances seem to run Pleroma just because it's simpler. There's definitely a bit of social credit debt incurred just by running it, but not enough to lead to immediate instance blocks, and largely the debt is lifting as more and more instances run Pleroma and don't.... poop in the Fediverse pool?

Aside from that, Pleroma, once properly configured, is a 1:1 feature match for all of Mastodon's core features, which is more than I can say for GS. Pleroma even offers a few features I see a lot of people wishing Mastodon offered, like the ability to auto-unfurl CWs. For my uses it's just about perfect.

As for my return to the Fediverse: I moved to my new Pleroma instance maybe 24 hours before the Twitter exodus wave hit and most instances, including my former home instance, strained under the load. A lot of instances closed registrations, some became unusable under the strain. I guess I was lucky in my timing for my own little move to social.voidfox.com. I did, however discover a fun bug manifest in re-using my old GS domain: anyone still following me from my GS days still thought they were following me, but my instance was not aware it should be sending my updates to them. I think Mastodon eventually re-establishes these follower subscriptions? But for some users their instances have not yet.

tl;dr: If you completely tear down and instance and then rebuild it from scratch later, consider using a different domain for it.

Surprisingly, this Twitter exodus seems to be sticking this time. I mean sure, a lot of people who checked out Mastodon/the Fediverse went back, but the growth this time is quite noticeable. It doesn't help that Twitter's stuck their foot in their proverbial craw several times over the past 6 weeks or so. Every time brings another small wave of users to check out what's on the other side. My own federated timeline is still slow enough to follow and I've met some neat people, but the traffic's definitely been growing!

So I think this time I'm staying. There's some worry about Pleroma's eventual project direction. It's in a weird place now where it's trying to be GNU Social 2.0, but still cater to Mastodon and its users. At this point though I'm pretty confident if it tilted the wrong way, it'd just get forked. It almost did during a recent development spat about new features vs GNU Social parity.

Time will tell; I'm quite happy with the revival of this experiment for now.

tags: tech