Devs Are Excited by ActivityPub, Open Protocol for Mastodon
“It’s happening,” blogged Evan Prodromou, whose pioneering work inspired the ActivityPub protocol on which Mastodon runs. “I have not been this excited about federated social networks since we published ActivityPub,” he wrote. “The shift has started.”
He’s referring, of course, to the migration of hundreds of thousands of users from Twitter, a centralized social media application now controlled by Elon Musk, onto Mastodon and other ActivityPub-powered decentralized applications. While this migration is still in its early stages, developer interest in the so-called fediverse has soared in the last couple of weeks — and if there’s one historical fact about the web worth noting, it’s that developers are usually at the forefront of paradigm shifts.
In a post on Mastodon, Christine Lemmer-Webber, the co-editor of the W3C specification for ActivityPub, wrote that “a lot of people contributed to ActivityPub,” but she listed Prodromou first in her list of key contributors. She said that Prodromou “designed the core protocol,” based on his “experiences co-authoring OStatus, ActivityPub’s predecessor.”
There are signs that ActivityPub may become a significant new internet protocol post-Musk Twitter, so let’s dig into the details and see how Mastodon in particular is using it.
How ActivityPub Began
ActivityPub is a decentralized social networking protocol that began in 2016 and is supported by the World Wide Web Consortium (W3C). It’s the main protocol of the fediverse, which is an evolving set of decentralized applications and websites that are starting to challenge the hegemony of centralized services like Twitter.
ActivityPub comprises two layers: a client-to-server protocol “for creating, updating and deleting content” and a server-to-server federation protocol “for delivering notifications and subscribing to content.”
Another important concept for ActivityPub is that a user is represented by one or more “actors,” which represent their accounts on different servers. So if you have two Mastodon accounts and one BookWyrm account (a decentralized Goodreads alternative) across three different servers, then you have three actors.
In a presentation about ActivityPub in April 2021, Lemmer-Webber explained that it was a group effort to bring together various existing protocols. “Around the time that we started the standardization work, there were all of these different protocols,” she said, “and there were a lot of different applications that spoke them, but very few of them could speak to each other.”
ActivityPub and Mastodon
The first time I signed up to Mastodon, it ran on OStatus rather than ActivityPub. I signed up in April 2017 and wrote up my early Mastodon experiences in a June 2017 post. I noted its relative inactivity compared to Twitter, but also its potential to be an effective “meld between Reddit and Twitter,” with the community features of the former and the micro-blogging functionality of the latter.
At the time, in mid-2017, Mastodon had just over 700,000 accounts (although it’s unknown how many were active) and 1,500 instances. Mastodon.social was the largest English-language instance in 2017, with just under 67,000 users (there were two Japanese instances which had 163,000 and 132,000 users respectively). While it’s hard to quantify the number of users now, Mastodon’s chief developer Eugen Rochko tooted on Nov. 7 that it has “1,028,362 monthly active users across the network today,” with “1,124 new Mastodon servers since Oct. 27.” As of today, mastodon.social states that it has 183,000 active users.
So when did Mastodon switch to ActivityPub? It was September 2017, when Rochko announced Mastodon v1.6, “the first Mastodon release which fully implements the ActivityPub protocol.” Several months later, in January 2018, ActivityPub became a W3C recommended standard.
So Is This a Tipping Point?
Many early adopters (myself included) experimented with Mastodon and other Fediverse apps in the 2017/18 timeframe, but the tipping point didn’t arrive then. Partly that’s because a new shiny decentralized object appeared and bedazzled many in the tech industry: blockchain. The crypto craze, rebranded as “Web3” last year by an influential VC firm, seemed to usurp the fediverse as the new face of the web.
But even though Web3 had its moment in the sun and attention on the fediverse dropped away, the true believers continued to work on the ActivityPub protocol and associated apps. This year we’ve seen Web3 take a big step backward and, thanks to Elon Musk, the fediverse become an attractive proposition once more. As Evan Prodromou said, it’s happening… again.
While Mastodon’s active user count still pales in comparison with Twitter, I have noticed many in the developer community joining the fediverse in recent weeks. Simon Willison, co-creator of the backend web development framework Django is one example. He joined Mastodon on Nov. 2, and currently has 6,300 followers (he has 43,200 on Twitter — but if Musk was correct pre-acquisition, there must be a bunch of bots in there!). So that’s around 15% of his audience that has migrated to Mastodon, after just a couple of weeks. Another developer, Molly White (who runs the “Web3 is going just great” website) has 22,000 Mastodon followers compared to 88,800 on Twitter — 25%! Again, developers are the leading edge of where things are headed.
What this renewed interest in the fediverse also means is the first true test of scale for ActivityPub. Twitter famously had scaling issues in its early days, so I expect that to happen with Mastodon too — and indeed Aral Balkan has already raised some concerns about the number of Sidekiq jobs required for a mega-popular user like Stephen Fry (who already has 56,000 Mastodon followers).
But the fact that people can easily create new “instances” (aka servers) for Mastodon would suggest that this can be overcome — it’s the key benefit of decentralization, after all. And if you don’t believe me, take the word of Blaine Cook, one of the founding engineers of Twitter in 2006. “I’m really not worried about Mastodon scaling issues at all,” he said (on Mastodon), adding that “these problems are solvable and I have no doubt will be fixed soon.”
Twitter Tries to Create a New Open Protocol
Finally, it’s worth noting that ActivityPub was designed from the get-go to be interoperable and extensible, so that anyone can build on it. Which brings up an interesting point: why did Twitter’s then-CEO Jack Dorsey decide to create a brand new protocol for Twitter-like apps in late 2019, under the guise of a non-profit organization called BlueSky, rather than simply extend ActivityPub? In a word: control. As the person behind the Mastodon Twitter account archly noted, “this is the building of a protocol that Twitter gets to control, like Google controls Android.”
At the time, Twitter ignoring an existing open standard didn’t necessarily ring alarm bells — after all, @jack said he was an advocate of open protocols. But now that Elon Musk is in charge of Twitter and has seemingly fired all of Twitter’s developer platform team, those alarm bells are ringing at a deafening volume.
The solution, of course, is for developers to get behind ActivityPub and make it the default open protocol for public conversation. I encourage devs to check out the spec and hop onto Mastodon to see what all the fuss is about (I’ll hopefully see you there).