In a recent post on Nostr, one of many Twitter alternatives that have popped up in the post-Musk era, OG Twitter developer Evan Henshaw-Plath (a.k.a. Rabble) wrote a critique of ActivityPub, the decentralized social network protocol that underpins the fediverse. “You can’t use a single fediverse identity with your profile and followers in Peertube, Mobilizon, WriteFreely, and Pixelfed,” wrote Henshaw-Plath. “You need a totally separate account in each one.”
I love ActivityPub and what apps like Mastodon have built on top of it, but I do agree with Rabble on that point: if you want to fully participate in the fediverse, across multiple apps, you need to have a separate identity for each application. You can’t use your Mastodon ID, for example, to log in to Pixelfed or Lemmy (a photo-sharing app and a forum app respectively).
In a Mastodon post linking to Rabble’s Nostr post — which, by the way, I happened to come across because I follow Rabble on Bluesky, yet another Twitter clone — I suggested that we need a way to carry a single identity across the fediverse.
I suggested that Sir Tim Berners-Lee’s Solid could help. Solid is a specification “that lets people store their data securely in decentralized data stores called Pods.” The key concept is that the user is always in control of their data.
ActivityPods: Portable Identity
It turns out, a project called ActivityPods is already attempting to bring Solid to the fediverse. According to its homepage, ActivityPods “brings together two game-changing technologies, ActivityPub and Solid Pods, and empowers developers to create truly decentralized applications.”
The blog We Distribute, a publication devoted to the free software movement, profiled ActivityPods this week. Founder Sean Tilley wrote, “ActivityPods extends the concept of a Solid to bring in federation, which lets Solid Pods talk to each other.”
Tilley then explains how it works from an identity perspective:
“Each pod has a singular WebID/Identity to begin with, and ActivityPods marries that WebID to a Fediverse Actor. A user then logs in to their social application through their Solid Pod, and grants permissions for the very first time.”
So far, this has not been made to work with Mastodon, or other familiar fediverse apps (like Pixelfed). The ActivityPods team have created a Mastodon-like app called Mastopod, as a proof of concept. Early signs are promising.
Innovation at UI Layer
Solid pods are one potential solution to the multiple IDs problem. But the solution could also be right under our noses, in the form of third-party applications built for ActivityPub. Tim Bray, one of the co-authors of the XML specification back in the 1990s, made this very point:
“My feeling is that the world’s UI innovators may solve this problem for us. What with Ivory and Mona and Elk and Phanpy, you can already have wildly different experiences of the same underlying network. Seems to me that many of the things that distinguish these alternate servers can be accomplished with sufficiently good client-ware.”
I use both Mona (an iPhone app) and Phanpy (a web-based client) as my Mastodon clients. Both provide a significant improvement in user experience over the official Mastodon apps. While neither supports non-Mastodon apps at present, there’s no reason Phanpy in particular couldn’t become a hub for fediverse apps — similar to what Hootsuite did for traditional social media (although I never liked Hootsuite’s user experience).
ActivityPub API to the Rescue?
In response to Bray’s toot, Evan Prodromou — one of the creators of ActivityPub, who is currently writing an O’Reilly book about the protocol — noted that this “is also the argument for using the ActivityPub API.” He described the API as “an open, extensible API that can handle any kind of activity type — not just short text.”
This gets to the nub of the issue. The fact that I can’t use my Mastodon identity to, for example, sign up to Pixelfed is not actually an ActivityPub issue — it’s because the two applications, Mastodon and Pixelfed, each require you to create an account on their respective products. What Prodromou is suggesting is that, technically, you can use the ActivityPub API for account access.
Prodromou followed up with a blog post to explain further.
“ActivityPub’s API is how client applications interact with the data on a user’s main account server. It lets the user read data on the same or other servers, and it lets them create activities and other kinds of objects on that server that get shared (under the user’s control) with the rest of the world.”
This process, said Prodromou, “makes your own ActivityPub server your real home on the social web, where all your activities go through.”
I followed up with Prodromou on Mastodon since his entire post had been syndicated there thanks to ActivityPub. I asked how a humble user might go about getting their own ActivityPub server. He replied on his blog (which, incidentally, didn’t flow through to Mastodon — perhaps illustrating some of the practical issues we’re dealing with here):
“I meant ‘your own server’ as in ‘the one where your account is’, not necessarily ‘the one on your bookshelf’,” he responded.
He even suggested that Mastodon might be able to offer this functionality so that you could (theoretically) use your Mastodon account to sign up to other fediverse applications.
Your own ActivityPub server could be “your real home on the social web, where all your activities go through.”
– Evan Prodromou, ActivityPub co-creator
Osma Ahvenlampi, a mutual follower on Mastodon, noted in response that a service called Takahē provides this type of solution already:
“ActivityPub servers capable of hosting your identity at a domain of your choice, rather than the servers’ own domain, are going to be a thing. Mastodon today doesn’t do that. One of the few that does is @takahe — but it’ll become more common for a general purpose “social” server.”
Takahē, named after a native New Zealand bird, is currently at version 0.11.0 on GitHub — so it’s far from production-ready. Among other things, it gives you “the ability to have multiple domains on a single server,” according to a November 2022 blog post by creator Andrew Godwin.
However, it’s unclear what the current status of the project is. An early user, Juan Luis, commented this week that Takahē is “cool but development is slowing down a bit and it’s a bit rough around the edges.”
Content Is Federated, But Identity Isn’t
As you can see, so far there isn’t a way to have just one identity on the fediverse and use that profile to sign up for various different services. Or at the very least, that’s not possible with Mastodon, still by far the biggest fediverse app (not counting Threads, which is still effectively in private beta — as a UK user, I cannot use the fediverse sharing features in Threads at present).
ActivityPods is promising, and I’d love to see Evan Prodromou’s ActivityPub API solution get implemented widely. But it’s still early days. While content is federated currently, identity isn’t. And while that doesn’t diminish the decentralized nature of the fediverse, having a single identity — that a user fully controls — would make it easier to sign up for multiple apps.
Originally published at The New Stack: https://thenewstack.io/one-login-towards-a-single-fediverse-identity-on-activitypub/




