AT friends #2: @snarfed.org of Bridgy Fed (@ap.brid.gy)

@snarfed.org of anew.social makes @ap.brid.gy , a bot Bluesky users can follow to bridge their account to the Fediverse.

@latenthomer.com: Your docs are great, and I don't want to ask questions that are answered other places. So [to start] can I ask for ActivityPub , ATProto , and IndieWeb , what's hard [to do] for each protocol?

@snarfed.org: Yeah I've spent a lot of time with these three but also Nostr , Farcaster and some others and there is a big range with how easy they are. I think closed social platform APIs and Nostr are at the low end, like the easiest. IndieWeb is not far behind. Activity Pub is maybe in the middle. Farcaster I can't say quite yet [and] I think ATProto is at the high end not because it is badly designed but just there is a lot of complexity.

You said on a podcast that it [ATProto] was opinionated.

It is opinionated and it's also just complex. They're doing a lot more and put a lot more into the protocol than some of the others ones. It depends, some things are pretty easy with ATProto but if you wanna make a PDS, that's hard. Like even in the software engineering/computer science sense it's not easy in a way that with the other [protocols] there's not as much there that's like, actually hard problems. But there are [in ATProto], like implementing the MST [Merkle Search Tree] from scratch, getting the commit chain right.

[Staying with IndieWeb, Activity Pub and ATProto:] who's a first class citizen? As an example, for ATProto, as a developer when I saw the Bluesky firehose and how composable it was I felt like a first class citizen, like this was made [to be fun to build on]. I think I'm a first class citizen as a developer in that way.

So if anything I come from the IndieWeb community so I think that would be the biggest tent. There's some philosophy there but they're very pragmatic. Like if you have a personal website, especially if you have your own domain you're a first class citizen on the IndieWeb, doesn't matter if you implement Webmentions or anything like that. In spirit, you're on the IndieWeb if you have your own domain.

[For the Fediverse] much of the spirit of the is this collectivism. [For example,] sfba.social , they got [1.9K Active Users] who live in the area. If you live in the area, and you're on that instance and you say, like, This is a big part of my identity. I'm going to buy into this community. If you're buying into that you're a first class citizen on the Fediverse.

Almost the community [is the first class citizen].

Yeah and tying a bunch of stuff to that one community, that one instance. Like, [the instance] determines my moderation, my identity--because the server hostname is part of my identity on the Fediverse--[and also] the functionality. If it's a mastodon instance I can do micro-blog posts but I can't do events, I can't do long-form writing, and so like they tie a ton of stuff together that determines your experience. And so if you're in for that, I think you're a first class citizen. You're saying, that works for me.

ATProto, yeah, in one sense it's very hackable and composable so what you say it's like, Oh I can see the Matrix here. And not just see the Matrix I can go touch the Matrix and so on the one hand for techie types that works, you feel like a first class citizen.

I think the other answer there is, part of the spirit of the Fediverse is this decentralized federated stuff, and ATProto has that, too, but it's much more individualist and not collectivist.

The PDS is not like a Fediverse instance, it's like Google Drive. It's just where you store your stuff. You can move your stuff to Dropbox. It's not like suddenly choosing a meaningful different affinity group or functionality. It's, like, files. And they push on that also with composable moderation. Like, as a user I can choose which labels I consume independent of where my stuff is stored, right? My feed, I can go use any custom feed regardless of which moderation, of which labeler I'm using. That decoupling and composability and individual focus in not the spirit of the Fediverse, so I guess I would say first class of ATProto want this decentralized social stuff but want more individual power, on that spectrum of individual to collective.

And coming from outside that's just my perspective.

So Bridgy Fed. Correct me, but if I'm a Bluesky user, Bridgy Fed lets me...all I have to do is follow the account and now you instantiate a mastodon account which...follows my bluesky account?

Yeah we struggle with terminology, originally we called that account on the Fediverse the bridged account but now it's gotten that people will say, your Bluesky account is "bridged." The language just emerges and if you try to fight it you're gonna lose so, leaning into that, we're saying okay the Fediverse version of your [bluesky] account would be the clone, and that's not a great word, I'd love a better word but [clone is] just what we got right now.

I love what it gets me, though. I can meet someone who's Mastodon-till-they-die and they can follow me.

Yeah and this is the point. Effectively it's a mastodon. In practice it's not using mastodon but yes, it is interoperable. These protocols...the idea is already that they're decentralized, there are different people [on different servers] and they can talk. So the idea is really just expanding that circle of who you can interact with, who you can see and talk to.

So it's 2025. What is unique about this moment and what is not unique about this moment for the social web. Are there technical innovations?

Yeah I can come up with some answers...I am often not as good at these kinds of things as my partner Anuj and a lot of other people in this space.

Originally I kind of got into this stuff more just to scratch my own itch and then I saw, Oh unlike the closed platforms that have their own apis that are pretty closed there are some lego blocks here. They're different lego blocks but you squint and you kinda angle them just right and you can plug them together, and as a simple engineer that's kind of appealing.

When you are scratching that itch and it gets crazy are you a whiteboard guy? Do you have any practical tips on what you do when...cause I can't imagine [the complexity of mapping multiple protocols].

I mean, no, I think that would be a good idea. I don't know that there's any techniques I have that are magic or surprising. I think, what's the quote 1% inspiration 99% perspiration? A lot of it is more just grind out all of the cases. Every now and then there's something that's actually a hard problem. But very rarely, right? And pretty rarely is the mapping between different networks and protocols an actually hard problem. It's engineering but often it's just grungy, grind it out, you get it mostly right but something breaks.

I think there's only one real--on the technical side, we're still talking engineering--there's only one real idea in Bridgy Fed and that's [to] abstract this stuff. Instead of mapping every protocol to every other protocol you map them to one common data plane, common format and piece of logic and then back out to wherever it's going. And that's just abstraction that's been with us in engineering for a century.

I think the hard problems are mostly non-technical. This is people interacting with other people. And you're mediating it with a bunch of, like, oh what does it mean to quote something versus retweet it versus repost it versus reply? And people take a lot of meaning from this stuff, and rightly so. And so navigating that, you know, is tricky and I'm not gonna claim I'm better at it than anyone else doing this stuff but like just being aware. Anything you do is gonna have meaningful impact to someone and their experience interacting with other people online.

One of my big worries with this is not the engineering stuff but is more...I've never been a, like, very online person. I'm kinda very online on GitHub, but not on social. And I think I'm happy with that for me, but if that's true...am I meaningfully less eating the dogfood here? Do I have meaningfully less product instinct for how to do this right and do right by the people using it? I haven't--I keep it in mind. So far I haven't come to the conclusion that I'm the wrong person, I should give up and throw this all away but I do think about that.

This is something that fascinates me about this space is you have these two very different worlds colliding. And also I think part of what you're doing is so cool because it's only natural that the conversation turns into the differences between these [protocols] but you are in a meaningful way, with code, showing...it's different but it's not all different.

I have some lighting round questions to finish off with, but maybe before can I ask one last one last question. Has there been anything--and maybe we'll just stick to ATProto for this one--anything you've learned and it was too late to back out. Like, you're already in the weeds, you've already said you're doing this, and all of the sudden you realize...oh I missed [something].

Yeah. Let me see. I mean, one big one that was not too late to back off from [was] when I first announced on the Fediverse, 'Hey I'm doing this.'

I kinda grew up in the Indie Web world, the late 90s/early 00s web era which was very like, everything was public, basically you expected search engines to crawl your stuff. This was the mash-up Yahoo Pipes era where it was very kind of expected and accepted that people would use APIs and fetch data and do different stuff.

The culture on the Fediverse is very different [now] and I think a lot of it is the people have evolved, the times have evolved and we've seen the ups and downs of social media. And so...I was naively saying oh if your account's public you're posting publicly, yeah let's bridge it, and it's one more place you're federating to like everywhere else.

I don't know if you paid much attention to this early on...but people were unhappy. And to your question, that was a big thing and a big direction I planned that was not--it took some work, but it was not too late to back out, we had just had to make it opt-in. How do we make it--and there are trade offs, because then if the idea is who you can interact with online, then instead of interacting with everyone, you would only be able to interact with people who bridge themselves. So that was one that, it was big, but not too late to back out of.

I hope we never hit that. Where like, we make a decision, we do something and it turns out to be a bad call and we're stuck with it. Cause I think very rarely you actually are [stuck], like sometimes but not often hopefully.

Lightning Round

You have a magic wand, you can bring back one deprecated social something that used to exist, what do you pick?

Pokes. And they already [have been brought back,] if you've ever seen Wafrn which is this unusual Fediverse server, [the creator is] this guy named Gabbo. [Wafrn is] very popular with Furries, kind of like the federated version of Tumblr, and he [Gabbo] recently added bites. He added bites cause he knows his community really well, and it's Furries! They're not gonna poke they're gonna bite.

[CLARIFICATION: Bites were a thing in other Fediverse software, including iceshrimp.net ]

True of False: Github is social media.

True-ish, yeah? It's my social media more than anything else.

You're gonna use one laptop for the rest of your life. It has either one sticky key that doesn't really work or a line through screen, like when a screen starts dying-

-line through the screen.

Google+. Underrated, overrated, properly rated?

My partner Anuj would say drastically underrated, he loved it, he was heartbroken. I think probably properly rated. People saw and appreciated the actually new features and new thinking wrapped up in a bunch of business product stuff.

It's 2003, you're fresh at Google, it's Monday morning you go into work. What are three things that you see.

One thing I don't see is a computer, they didn't have one for me. After lunch, the next thing I don't see is my manager, he welcomed me and then took off for two weeks. Third thing I didn't see was a cafeteria because we didn't have them there was only one building. Charlie Ayers was there with a couple people helping but they were cooking out of a truck, so it was early.

Favorite actual bridge.

Pontoon bridges are pretty awesome.

From all your work in Bridgy Fed, name one thing that's harder than people think, and one thing that's actually not that hard.

Content negotiation is god awful. I feel like it's almost all downside.

What's content negotiation?

So http, when you fetch something over http, depending on the accept header you send you can get different documents back, which have different types. You have to do this in the Fediverse but, it adds this modality like I can fetch this url, but depending on something outside of the url, these headers, I can get a different thing and this trips a lot of people up. And I think it was a mistake in the standard.

Maybe web sockets [are easier than people think]? Like people kinda get thrown for a loop--the firehose, how the hell would you [do that with] web sockets. It's different but it's just like...it's fine.