Lighting a Bonfire Under Social Media: Devs and ActivityPub
As developers begin to shift away from post-Musk Twitter and contemplate building apps on federated social media protocols, many are asking themselves: what can I do with ActivityPub, the key open protocol of the fediverse?
ActivityPub enables different applications to federate content between themselves, which both enables and encourages the open web. The specification from the World Wide Web Consortium (W3C) is thorough and has good explanatory materials, but even one of its authors admits it is difficult at first to grok.
“Nobody understood ActivityPub for a long time,” said the spec’s co-editor Christine Lemmer-Webber in a Mastodon post. “I would explain and explain and explain and it was just so hard to make progress that way. It took until people could touch it for more than a few to respond that they *got it*.”
ActivityPub 101 for Devs
We’ll get to a few implementations of ActivityPub shortly. But first, despite Lemmer-Webber’s warning, it’s important to at least understand the high-level details of how this technology works.
The first thing to understand about ActivityPub is that it uses a data format defined by ActivityStreams 2.0, a prior W3C protocol that aimed to define “a social data syntax.” So, for example, ActivityStreams 2.0 defines an object model that includes actor, content, link, and activity. An “actor” means a user of an application like Mastodon.
For more in-depth developer resources, I recommend bookmarking this guide for new ActivityPub implementers. It’s a treasure trove of links to tutorials and other reference material.
Bonfire: Thinking Big about Microblogging
The most popular ActivityPub implementation — and the one that’s easiest to understand, given its similarity to Twitter — is Mastodon. Like Twitter, you have an account on Mastodon (actor), you create posts (the Content object), you “like” things (a type of activity), and so on. Mastodon has become the main beneficiary of the #TwitterMigration, because it shares a very similar data model to Twitter. But ActivityPub allows for a much wider range of web applications than this.
The best way to explain this is to look at some examples that are doing social media in a different way than we’re used to. Take Bonfire, an application that allows you to “customize and host your own online space and control your experience at the most granular level.”
The granularity is achieved by users defining “circles,” so that you don’t need to sort people into “binary boxes” such as friend or follower. If this concept sounds familiar, it’s because Google tried to introduce “circles” into social networking via its ill-fated Google+ product (now in the Google Graveyard, among many other former products from Mountain View). In addition to circles, Bonfire has a concept it calls “boundaries,” which allows users to define how their contacts can interact with them. So the granularity isn’t just about sorting your contacts, but having control over what kind of content certain contacts can see.
Bonfire was launched in June this year as a beta. The team refers to it as a “playground” and you can sign up for a test account in this playground instance.
Bonfire was created by Ivan Minutillo and Mayel de Borniol, and when they launched the beta they called it a “federated app toolkit.” Their idea wasn’t just to create a single app, like Mastodon, but to allow developers to create “extensions” for the core Bonfire product. One early example is a project called Kanban, which aims to provide “federated project coordination” functionality to Bonfire.
When you sign up for the playground, you’ll notice similarities with Mastodon and/or Twitter — the ability to follow people, make posts, like posts, view recent posts in a timeline, and a “trending topics” panel. But there are also differences, as explained in another article from the creators:
“Choosing what you see in your home feed, changing the interface theme and font, switching between multiple profiles, rich text formatting in posts, setting a title for threads, and granular blocking options are a few features that may be new to beta testers.”
Tweaking Web 2.0
So far in the fediverse, many of the apps built on ActivityPub are facsimiles of popular Web 2.0 apps — Bookwyrm is a copy of Goodreads, Lemmy is a copy of Reddit, PeerTube is a YouTube clone, PixelFed is Flickr 3.0, and so on.
While Bonfire is trying to go beyond a typical microblogging platform, the beauty of the fediverse is that you don’t need to upend everything that already exists. Sometimes small but significant tweaks are enough.
That’s the philosophy behind Hometown, a fork of Mastodon created by Darius Kazemi, who was an early adopter of the fediverse. One of the main features of Hometown is “local-only posting,” which gives users the option of not federating their posts. When I spoke to Kazemi back in May about this, he said that 70% of the posts on Hometown are local-only, which he said encourages community. “Local posting acts as fuel to the fire,” he said, “it makes people want to post more.”
“And so even though only 30% of our posts go out into the world, overall there are more posts going out into the world from our server than most servers of a similar size,” he added.
Another thing to watch out for in the fediverse is apps that bring new audiences to the social web. One that caught my eye was OLKi, which was built with scientists in mind. While it wants other “fediverse citizens” to use the site as well, the goal is to bring “research papers, datasets and peer reviews to a larger network of federated social platforms, with no vendor lock-in and on a platform you can host and control.”
Given the predominance of gated websites for scientific papers, I love the idea behind OLKi and hope it gains traction.
In conclusion, remember that the fediverse is very new and developers are still figuring out how to use the protocols. So be patient with it. It’s especially heartening to see the resurgence of interest in the open web, thanks to the fediverse (and indirectly, thanks to Elon Musk).