What drew you to ActivityPub?
-
This question was asked by [email protected] on Dot Social's latest episode about the blogosphere on Fedi.
[email protected]: "we wanted to connect Ghost blogs to each other, but then we discovered ActivityPub"
[email protected]: "we wanted to connect WordPress blogs to each other, and ActivityPub has been the most successful attempt"
[paraphrased for brevity]
Did you catch the subtext? Both those answers, and my own answer with NodeBB contain the same seed idea... that we originally wanted to connect our software with itself only. We went through years of building a company and vying for profitability that it never occurred to us to work towards cross compatibility with anyone besides out own software.
Then ActivityPub came along and quite literally expanded the potential for the entire endeavour a hundred-fold, because not only are you connecting your own software to each other, but every other ActivityPub enabled software in existence. Blogs, microblogs, forums, image boards, etc. all with a built-in user base ready from the get-go.
It's no wonder that after discovering AP, it becomes the protocol to utilise.
-
The problem with starting a new social media app is the chicken and egg thing where people need content (and other people) and content only exists if there are people. Network effects. ActivityPub avoids that hurdle.
So that makes it possible to enter the game with much less capital. That's nice but personally I'm here for the billionaire-resistant nature of it and the better moderation.
- No one can 'do a Musk' to Mastodon and if they did everyone would just fork it and defederate from his instance.
- Without an advertising-based business model we don't need to encourage controversy and nurture dickheads, we can just ban them. Same goes for fake news sources.
We have the potential to create something far more human and revolutionary than any of the ad-based mainstream platforms.
-
My story is a bit different. I've made a conscious choice over the years to maintain a user PoV, by being a tester, tech ethicist and evangelist, rather than a software dev or server admin. So AP kind of came to me, because I was already using the fediverse when it came into being. As it happens, I shifted from an EU-based GNU social service that shut down, to a locally run Mastodon service, around the same time it was adding AP support on top of its existing OStatus federation.
But to answer the deeper question about what drew me to the fediverse, what @rimu1 said; network effects.
I've started and supported a lot of anti-corporate online projects over the years. Getting a critical mass of people to create yet another account was always a major obstacle. I could see the benefits of an open federation of disparate services in email, and to a lesser extent Jabber (XMPP). So as soon as I saw projects like Identi.ca and Diaspora applying that concept to social media, I could see the potential.
After more than a decade of pushing this concept uphill with a pointed stick, it's very exciting to see it start to take off in the wider open source dev world, and beyond
-
The problem with starting a new social media app is the chicken and egg thing where people need content (and other people) and content only exists if there are people. Network effects. ActivityPub avoids that hurdle.
So that makes it possible to enter the game with much less capital. That's nice but personally I'm here for the billionaire-resistant nature of it and the better moderation.
- No one can 'do a Musk' to Mastodon and if they did everyone would just fork it and defederate from his instance.
- Without an advertising-based business model we don't need to encourage controversy and nurture dickheads, we can just ban them. Same goes for fake news sources.
We have the potential to create something far more human and revolutionary than any of the ad-based mainstream platforms.
> We have the potential to create something far more human and revolutionary than any of the ad-based mainstream platforms.
Right on! That's the refrain I hear a lot from people who discover ActivityPub and then build software for it.
Building something out of principle is a wonderful approach. I hope someday were in a position so that you don't have to sacrifice principles to make money.
-
My story is a bit different. I've made a conscious choice over the years to maintain a user PoV, by being a tester, tech ethicist and evangelist, rather than a software dev or server admin. So AP kind of came to me, because I was already using the fediverse when it came into being. As it happens, I shifted from an EU-based GNU social service that shut down, to a locally run Mastodon service, around the same time it was adding AP support on top of its existing OStatus federation.
But to answer the deeper question about what drew me to the fediverse, what @rimu1 said; network effects.
I've started and supported a lot of anti-corporate online projects over the years. Getting a critical mass of people to create yet another account was always a major obstacle. I could see the benefits of an open federation of disparate services in email, and to a lesser extent Jabber (XMPP). So as soon as I saw projects like Identi.ca and Diaspora applying that concept to social media, I could see the potential.
After more than a decade of pushing this concept uphill with a pointed stick, it's very exciting to see it start to take off in the wider open source dev world, and beyond
> Getting a critical mass of people to create yet another account was always a major obstacle.
I see and have experienced this effect time and time again, and we're getting closer and closer to the point where the protocol implementations can abstract away the messy bits.
Gaining critical mass among devs is the first step!
-
What drew me to ActivityPub in 2018 is that it seemed to be the best bet for moving towards The Decentralized Web as envisioned by Tim Berners-Lee. My interests were in particular for accessible technology that could facilitate broad participation and cocreation. The only way to make a fist to Big tech et al.
In 2017 I did an elaboration of existing technology candidates and was struck by the sheer amount of long-dead prior attempts that existed and no one remembers. The list of viable candidates was very short. Initially I gave 'best cards' to DAT project and started collaborating in the community, only to realize that despite excellent technical work, there was little chance of broad technology adoption. Mostly due to the deep tech focus, to the cost of attention to other success factors.
Side stepped to Secure Scuttlebutt and IPFS briefly, but they were both too immature at the time. Not likely to reach broad adoption. I then shifted focus to Solid Project and started to collaborate in the community. Only to learn about a whole range of factors that made me also scratch Solid from the shortlist.
ActivityPub had the best cards, esp. given its W3C Recommendation status, and the promise it delivered:
A network of addressable actors that exchange activities with extensible linked data payloads.
Or even..
An actor-based event-driven architecture for the exchange of social interactions between people.
With that simple conceptual architecture you can model anything.
The reality turned out a bit differently, caused by the organic growth of the ecosystem, and the social dynamics that exist in grassroots environments. Which do not really support collaboration across projects and doing work that is in the common interest to uphold the foundational technologies and standards. But that only means interesting challenges and opportunities in and of itself.
Currently, in the time I have, I am shaping an as-yet non-existing role as Social experience designer. Consider it a Hobby. Just considering how all the tech talk relates to finding solutions that match people's needs. And doing so in new ways that are potentially unlocked by AS/AP.
-
The problem with starting a new social media app is the chicken and egg thing where people need content (and other people) and content only exists if there are people. Network effects. ActivityPub avoids that hurdle.
So that makes it possible to enter the game with much less capital. That's nice but personally I'm here for the billionaire-resistant nature of it and the better moderation.
- No one can 'do a Musk' to Mastodon and if they did everyone would just fork it and defederate from his instance.
- Without an advertising-based business model we don't need to encourage controversy and nurture dickheads, we can just ban them. Same goes for fake news sources.
We have the potential to create something far more human and revolutionary than any of the ad-based mainstream platforms.
-
the lemm.ee shutdown prompted me to try other Fediverse platforms so far mbin/PieFed/Friendica and now here
-
julian:
Then ActivityPub came along and quite literally expanded the potential for the entire endeavour a hundred-fold, because not only are you connecting your own software to each other, but every other ActivityPub enabled software in existence. Blogs, microblogs, forums, image boards, etc. all with a built-in user base ready from the get-go.
It's no wonder that after discovering AP, it becomes the protocol to utilise.
This feels like a misattribution of cause and effect. Particularly, this bit stands out:
julian:a built-in user base ready from the get-go.
It's not the protocol that brings the value; it's the user base that you gain access to. Unfortunately, the way the protocol gets used currently (not ActivityPub) is not sufficiently defined, and brings with it too many constraints to be able to reach full potential. Access to the existing user base comes at a cost.
---
To share my own story, what drew me to ActivityPub was less ActivityPub itself, but rather that Mastodon claimed to use it.
I had flirted with distributed social networking in the past -- identica, diaspora*, GNU Social -- but ended up mostly active on Twitter, because that's where "my people" were. But of course, Twitter was steadily getting to be uninhabitable, and the value of being on Twitter was eventually outgrown by the cost of being on Twitter:
- 2008: I join Twitter
- 2009: I have fun on Twitter and make friends
- 2010: ads were introduced in the form of "promoted tweets"
- 2011: trending hashtags became trending phrases
- 2012: API restrictions, limiting apps to 100,000 users, cutting off competitors
- 2014: a greater focus on "viral content" instead of talking to friends, which helped propel Gamergate
- 2015: shadowbans made some people invisible; quote tweets meant i started seeing a lot of toxic garbage due to dunking culture
- 2016: reverse chronological timeline is no longer the default; Twitter rebrands as a "News" app instead of a "Social Networking" app; entirely too many out-and-avowed Nazis harassing me; added to a transphobe's blocklist which gets imported by Wil Wheaton and prominently advertised in his pinned tweet, leading to my account getting shadowbanned
- 2017: I stopped using Twitter
- 2018: CEO Jack Dorsey states during an earnings call that "We are not a social network. We do not benefit from social graphs. People come to us when they're interested in events happening in the world [...] We've been biasing a lot more of the service towards interest and topics."; I deleted Twitter
Luckily, in November 2016, a comrade of mine posted about mastodon.social as basically "Twitter without Nazis". So people moved there in waves; the April 2017 wave was a sort of cambrian explosion that brought a lot of cool people into the same space. In many ways, it was the peak era; this era lasted through 2019 or so.
Being what you might call a "power user", I got involved on the Mastodon issue tracker, reporting bugs, making feature requests, and eventually writing the documentation at the tail end of 2019 (and revamping it in the latter half of 2022). And of course, Mastodon was powered by "ActivityPub". So I looked into it.
There was a dream idea of multiple disparate services interoperating on a commonly shared set of social functionality. It sounded great! "What if you could use your Twitter account to follow a YouTube channel, comment on a YouTube video, and so on?" After the relative success of Mastodon in April 2017, Gargron was toying around with an ActivityPub-powered clone of YouTube called Cobalt. (It didn't go anywhere, but PeerTube filled that niche soon after.) It felt like the
App.net
dream might actually come true, on a far grander scale. Unfortunately, it didn't quite end up playing out that way.Maybe part of the disillusionment was that by several indications, Mastodon was going the way of Twitter... in a concerning way. It wasn't as bad as Twitter by any means, since at the very least the quality of the service was still there. The moderation was still worlds better than Twitter. It was still "Twitter without Nazis"... but it felt like Mastodon was slowly repeating Twitter's mistakes. In 2018, Mastodon added a "trending hashtags" feature, which was met warily by early users and eventually led to its removal... although it eventually got added back and expanded on with trending links (although concerns remained) and also trending statuses (although concerns remained).
So, what do you do when one "ActivityPub" project starts going in a direction you don't like? Well, the promise of open decentralized networks is that you should be able to move to something else while still being part of the same network, right? ...right? Unfortunately, the more I learned and the more I saw things (d)evolve, I grew concerned that the fundamentals were unsound. When SocialHub came about, I tried writing some SocialHub threads about some of these problems. When the FEP process came about, I tried writing some FEPs. Meanwhile, I was growing somewhat distraught that progress had frozen, the Social CG had gone inactive, Mastodon was refusing to take responsibility for the de facto protocol it could have stewarded... The reversal of course on many early decisions came slowly at first, then much faster after November 2022 and the Elon Musk stuff. The revival of the Social CG gave me some more hope for a bit, but that has been waning over the past couple of years.
I have had to grapple with bigger questions of general strategy and in developing a theoretical understanding of digital social communication, and I have come to realize that I just do not believe in social media platforms at all anymore. If anything, I was trying to make friends and understand the world. I have only ever been able to feel that kind of environment with early Twitter (2009-2011 mostly, but it was definitely over by Gamergate), and 2017-2019 fedi. By now, most of "my people" have quit fedi or been driven away by a growing sense of cultural shifts and alienation from the spaces we used to inhabit, the spaces we carved out for ourselves.
I think what it comes down to is the promise that because these projects are open source and because the spec describes an open protocol, that anyone can get involved, that anyone can change things for the better. The reality has unfortunately not delivered. There are simply too many missing stairs. The true implicit protocol has ossified and remains widely inconsistent and undescribed. The software that has been built is fundamentally untestable and unverifiable, because it does not fully and formally define correct behavior. And the UX gaps seem nigh unsolvable, because they are caused by protocol issues bubbling up all the way to the UX layer. The best you can hope for is quadratic combinatorial explosion as N devs need to talk to N-1 devs... some of which they might not be aware of. You can never be sure of how other systems will interpret your activities, because the semantics are being overloaded by everyone, and you not only have zero guarantees, but you also have zero signals.
It's the sort of divide that I have called "fedi vs web" in a rambly thoughtpiece I wrote at the end of last year, though I never got around to continuing that series of articles because I wasn't sure anyone would really take them to heart. Perhaps the most effective thing I can do with my time right now is to learn more and research more and develop those writings and theories into concrete models so that I can prove the concepts rather than describing them over and over. And more than anything, I want those models to "scale" in the sense that others can easily adopt those models for themselves, but the models also need to be self-justifying so that they can't be captured, coopted, or compromised.
Ultimately, where I stand today is that connecting to the fediverse is valuable in that it brings access to users... but you have to give up a lot. Mainly, you are bound by the "lowest common denominator" user experience, where you can't even remove a follower in some cases because there is no formally specified way to remove a follower, and the "follow state machine" is horrendously infamously buggy because it depends on both sides keeping track of follow state, instead of only the sending side. You are bound by having to squeeze everything you output into a shape that Mastodon will find acceptable, because without Mastodon, you don't get to access most of those users that are probably the reason you're bothering to connect with the fediverse in the first place... and if it's not Mastodon, it's some other ad-hoc compatibility target like Lemmy. You have to struggle with the vast inconsistency that comes with everyone using the same terms with different meanings, with every implementation having its own quirks and undeclared requirements, some of which conflict with each other. You have to deal with the knowledge that your own desired feature set is immediately compromised by your peers not understanding you, and even if they understand you, it comes at a great loss of fidelity. You have to deal with the paper cuts and bruises and little-deaths that are taken for granted; the ambiguity, the uncertainty, the lack of guarantees; the burden of having to implement an entire web browser from scratch and also implement an entire mail server from scratch, and then still having your application logic to worry about.
The reason I'm still on the fediverse is because I have nowhere else to go. Everywhere else has simply become inhospitable.
---
All of this sounds cynical, and it probably is, but I do think that we can build better software, provided that we share the same goals and principles. I think that "connecting services with other services" is on balance an improvement compared to a world where services aren't connected to anything at all, but I would posit that we need to go further than that. We need to connect people and enable them to communicate more effectively. We need to build better avenues for self-expression. It turns out that you don't need to adhere to the fediverse model to achieve this. Rather than distributing the content, you can federate the identity. You can give people more control over where their posts end up being syndicated. You can build explicitly managed reified spaces that people can intentionally participate within. There's so much we can do, and we should be willing to evolve beyond a model where only services can exist. We should be willing to build a real Social Web, where the entire Web can participate.
(Somewhat ironically, I think that ActivityPub and ActivityStreams are better fit for actual "activity streams" rather than trying to manipulate a network of syndicated Notes. "Activity streams" have their place, but I don't think you can unify all of digital social communications under this one paradigm. Rather, we should recognize that resources can belong to multiple classes at the same time -- that Thing that's an Article might also be a Post, an Asset, a Review, and so on.)