Avoiding Social Media Lock-In With ActivityPub

09 Jul 2023 By thomas

Small and larger businesses are well aware of the importance of owning their online presence and diversifying their social media strategy. But due to cost and time constraints, micro-entrepreneurs such as creators often find themselves vulnerable to shakeups in the ever-shifting world of social media. Even brands that are able to duly diversify are at risk of being blindsided by changes to algorithms and APIs. And app developers have yet more reason to shield ourselves from any nasty surprises that affect our end users and the continued functioning of our applications.

Twitter, despite never having been at the top of most-used social medias, has long been a mainstay of networkinging for software developers and other professionals. And, partly due to the art community that moved over from Tumblr, it has been an important place for artists of all sorts to find customers and network with other artists. Twitter has had its ups and downs over the years and usually struggled to make a profit, so while it’s easy to focus on developments since its acquisition by Elon Musk and other investors, it was always the case that over-reliance on Twitter or other people’s websites in general was a bad bet.

One of the places Twitter users have defected to during various recent problems at Twitter is decentralized social networks. The “Fediverse” as it widely known, consists of various social media sites that use a common protocol, ActivityPub, to synchronize social media activity such as shares and comments across servers. Servers can run popular open source social software such as Mastodon, Akkoma or Pixelfed or it can be a bespoke closed-source server software. Like any other protocol that powers the modern internet, all that matters is that both ends speak the same language and make well-formed requests to each other.

Into The Fediverse

While the Fediverse has seen growth during various headline-grabbing bad decisions at Twitter and much of that growth has stuck, it still only has a small fraction of the daily active users as Twitter. However, there are big players who can change that. Last year, Tumblr and Flickr expressed interest in adding support, with Tumblr sounding more serious. Neither have delivered so far, but such is often the case with software development lifecycles. Medium launched their own Mastodon instance and Mozilla is in the process of doing so.

More recently, Meta has released a new Twitter-clone, “Threads” that they promise will have ActivityPub support soon, with much communication with major instance administrators that suggests a greater degree of seriousness and imminence than from other players. Many, myself included, are rightly wary of Meta’s practices. Many start-ups have built their strategy around short-lived policies and ephemeral quirks in Facebook or Instagram’s algorithms, only to have that rug pulled out from under them. Many have been burned by their real name verification. But such a big player embracing an open standard opens real opportunities for businesses to own our presence and have our social media reach too.

There are a lot of ifs here, and planning on something that might not happen - the entry of Threads into the Fediverse - is at least as foolish as relying on a given social media not changing their policies. But there are good reasons to start embracing ActivityPub now and include it as part of your broader social media strategy. If you have a WordPress-based website or are planning on having one, simply adding the ActivityPub and Webfinger plugins will add the network effect of the Fediverse as it currently is to commenting and make direct sharing within the Fediverse easier. Note that this is a level above the ubiquitous social sharing buttons websites have. Any shares and comments that happen are in your database and something you have control over. Interactions with your posts are adding content to your website instead of this value being eaten up by the major social media giants. Recall that SEO rewards real content and integration with Fediverse streamlines letting users add it.

A good communication protocol isn’t simply useful for communicating with the outside world, it can also provide a reliable off-the-shelf way of having your own websites and scripts exchange data with each other. Even if there is no intention of federating with the broader Fediverse (and such federation turned off), ActivityPub can also be a useful way to do things such as synchronizing content in support forums with internal bug tracking. It’s worth looking into the protocol and seeing how it can enhance your web applications.

In addition to adding ActivitySupport to blogs, running your own branded instance of ActivityPub-based software can be a great way to keep your branding on your Fediverse presence and encourage more users to spend time around your content and your brand. Allowing partners in your industry to make use of your instance for their accounts allows your brand to accompany theirs - with handles always being in the @username@instancedomain format.

Pitfalls

As Elon Musk has been learning the hard way, moderation is hard. It is something that sounds easy if you’ve never done it at scale, then mounds upon mounds of unforeseen problems crop up. Mike Masnick of Techdirt made an excellent game illustrating the difficulties a hypothetical social media startup would face. The challenges of moderation reduce greatly the fewer activity there is to moderate, with a blog comment section being a very different beast than a site with millions of daily active users. But any negligence in this space can greatly harm the image of your brand or even put you in legal jeopardy. There are scammers and peddlers of hate speech waiting in the bushes for unmoderated comments sections to appear.

As with anything involving databases and user-provided data, you must be prepared to fulfill any legal and moral obligations involved if you do allow others to sign up to be on your server. This might be a good reason to keep the ActivityPub strategy more minimal - focus on removing friction for interacting with your content directly from the Fediverse.

With Federation comes masses of users who could potentially see your otherwise obscure content, for better and worse. Typically a big part of moderation in the Fediverse is choosing which other servers to federate with. Usually the approach is blacklist-based, federate with all except a list of known bad instances. Another approach you could take would be to not federate with any servers except a list of known good instances. This can be risky in terms of your content not being visible to solo instances (instances with 1 or a few users) and well-moderated but specialty instances you weren’t aware of.

Lastly, there are technical costs that go with hosting more complicated software, even off-the-shelf, well-tested open source software. Ensure that you are prepared to do what it takes to keep your additions to the Fediverse alive, or else both you and the rest of the internet lose valuable content.

Beyond ActivityPub

It’s also worth mentioning that there are other decentralized social media protocols. The other major one getting buzz right now is BlueSky, an initiative originally from Jack Dorsey of Twitter but now lives as its own separate foundation. This is still in early stages with invite-only servers. It does have the distinct advantage that you can make your handle based on your domain name without having to host an instance of bluesky. Only a simple DNS TXT record is needed. That is great for branding and prevents you from being visibly locked to any one third-party instance.

There are also older, simpler protocols that we shouldn’t forget about. RSS and RDF are still great ways to share the content of blogs. Blog software, as well as the aforementioned ActivityPub-based social networks, have extensive RSS support built in. This older, simpler protocol is widely supported by various scripts, libraries and user applications. In some cases, it can do what ActivityPub does as long as the RSS is polled periodically for changes. This is an important thing to consider for websites run on static web hosting - no database is needed to give people this simple way to read your content on their terms.

The irony of this blogpost being on a static generator isn’t lost on me. At the time of this writing, this website provides RSS but no ActivityPub integration. We will be increasing our presence on the Fediverse, however. Stay tuned.

Think of Other Entrepreneurs Too

At the end of the day, the benefits of fighting against lock-in around other people’s software are felt not just by you but by everyone else who’s lured in to contributing. If every small tech company did their part in embracing open standards, that creates all the more incentive for more software going forward to keep using those standards. If we can succeed in breaking through walled gardens, we can reduce the amount of time and money creators put into adding value to big, established websites instead of to their own web presence.