colourful words and phrases

techy tangents and general life chatter from a tired sysadmin

Oh god, social media

Thoughts ActivityPub

Hey guess what! Twitter sucks. It’s sucked for years, it’s getting worse, and they’ve just announced the addition of an actual child to their board.

Fun fact, though: Alternatives exist, and they’re pretty good, all things considered. A disclaimer, before I continue: I may be biased. I run the Mastodon-based social network, and have done since 2017. While this is paid entirely out of my own pocket, I do accept and have previously received monetary donations from others both on and across the wider fediverse, primarily during the months I was unemployed.

How’d we get here? A primer on what went wrong

In the beginning, Twitter was simple. You sent SMS messages to a phone number and they’d be published online. Originally it was just shouting into the void about whatever you wanted to talk about. Other people could see what you were saying, and could follow you. I don’t remember if the original inception of Twitter even had @mentions, nor likes.

Twitter was a startup, and as was the case with mid-2000s startups, it had capacity issues as more users signed up; the fail-whale was a common sight. At that point, it was already pretty popular, but it already had a problem: Revenue. Twitter struggled for many years to become profitable, and checking now, Twitter didn’t have a positive net income until 2018, but it was a full company, with employees and infrastructure and offices. VC money only lasts so long, you eventually have to make some money yourself.

Twitter began serving advertisements around 2010, marking their first attempt at monetising the service. Wikipedia claims that, prior to that, their only revenue was through rounds of funding and through investments. It seems as though this worked out well for Twitter, because until the launch of systems like Twitter Blue, “SuperFollows” and so on, it was the only visible means by which Twitter was monetising their platform. If memory serves, there were paid tiers of developer access to Twitter, but I don’t know the details of this.

Something became obvious, however, after Twitter Ads began being served: third-party clients didn’t serve them. At all. I don’t recall ever seeing anything related to ads in third-party clients, other than the ads that those clients injected separately. Users of third-party clients represented a loss in revenue, and thus Twitter began to place harsher limits on free access to its API. At the start, this was in the form of reduced rate limits, lower total simultaneous users, and so on, which was frustrating but nonetheless worked around, with some apps encouraging users to supply their own API credentials.

At some point between 2012 and 2018, Twitter began changing their stance on API usage much more visibly. New features weren’t made available in the public APIs, and features that were critical to the user experience of third-party twitter apps, like the Streaming API (which allowed an app to receive near-realtime updates to a user’s timeline and notifications), were fully killed off. In 2022, third-party clients still do not have the ability to vote in polls.

The Wikipedia article charitably attributes this to Twitter’s efforts to improve the “stability and security” of its platform, but these were fairly transparently efforts to force more users into the official Twitter experiences, where it could collect as much data about interactions/impressions as possible, and serve ads everywhere it can. They were, in my opinion, unfortunately fairly successful in killing the third-party client ecosystem.

From around 2018 onwards, the attention seemed to focus more on reliance of algorithmically curated content; tweets and notifications became (unless you opted out) filtered and sorted by an algorithm that Twitter thought knew better than you, what you wanted to see. They are, at least, somewhat open about what they think you’ll like. If you want a laugh, you can browse the list of “topics and interests” that Twitter’s decided I like.

Now? Well, Twitter’s just expanded its board with a literal child, it has special profile pictures just for people who like fake money and destroying the environment, transphobia and other forms of hate are unending, and users can’t even distribute blocklists, because Twitter removed the feature that allowed you to import/export your blocks. But hey at least a bunch of people with the verified tick can tell you to buy monkey jpegs.

Sucks. What now?

Thankfully, there exist alternate social networks. Not just the like of Facebook by Facebook (sorry lads, I’m not recognising your name change), but decentralised, federated social networks. Not the fake-decentralised “web3” kind, where the only part that’s decentralised is the computational and storage parts, but actually decentralised. It’s not perfect, but it’s the best we’ve got, and it’s built on open standards.

These are separate, stand-alone social networks (known as “instances”) that speak a common language, usually ActivityPub, and can speak to each other, forming what is colloquially referred to as the fediverse – a large, ad-hoc network of interconnected sites.

There are some obvious examples of this – all the Mastodon-based social networks, Pleroma-based, there’s Misskey, and other examples of microblogging/”Twitter-esque” applications, all of which have some level of userbase.

There’s other things too, though. Because the underlying protocol, ActivityPub, is a standard, there are other uses. Pixelfed is an Instagram-esque federated social network application, for which there are multiple instances. PeerTube is YouTube-esque, there are full long-form blog platforms that speak it such as WriteFreely (the software that powers and Plume. You may not have noticed, but this blog also speaks ActivityPub, and you can follow it from your federated social network of choice at, thanks to the ActivityPub plugin for WordPress, by

All the links above, link to that software’s respective list of instances, any of which you can choose to sign-up and make home, but there’s also plenty of documentation if you wanted to host this software on your own servers. The “social network effect” doesn’t have quite the same impact, because if you set up your own server, and it speaks ActivityPub, you can just.. use it. Type in the username of someone you want to follow, and the server fetches their profile and you can follow them. Give your username out, people can follow you. Put in the URL of a post and you can interact with it. From the very start, you’re not alone.

Cool, but I’m not gonna just delete my Twitter!

That’s totally okay! I haven’t deleted mine either, and barring some drastically worse change, I don’t really intend to. Some folk are on there that just don’t want to move, and that’s alright. You can, however, use services to cross-post between your two accounts. The one I use is created and maintained by, which you can (of course) host yourself. It’s not perfect (nothing ever is) but it’s been working out pretty well for me.