Protocol-oral-history-project/content/articles/prodromou-distributed_social_networks.md
2025-04-07 15:05:42 -06:00

36 KiB

narrator, subject, facilitator, date, approved, summary, location, headshot, links, tags
narrator subject facilitator date approved summary location headshot links tags
Evan Prodromou Distributed social networks Nathan Schneider 2024-12-06 2025-04-01 A career-long journey to build online social networks that cannot be controlled by a single company, culminating with the ActivityPub standard. Montreal, Canada /headshots/placeholder-headshot.png
text url
Website https://evanp.me/
text url
ActivityPub: Programming the Social Web https://www.oreilly.com/library/view/activitypub/9781098162733/
decentralization
open source
organizations
social media
software
standards

How do you introduce yourself?

My name is Evan Prodromou, and I'm a software developer, entrepreneur, and architect from Montreal, Canada. I'm best known for my work on distributed social networks, and in other circles for wikis and AI. I have a lot of different hats.

Let's get to know some of those hats. How would you outline the trajectory of your life and career? Where did you start and where are you now?

I did well in school and ended up going to UC Berkeley as a physics student in the eighties. The University of California was an incredibly exciting time to be in physics---I had more Nobel laureates in my department than there were in all of the Soviet Union at the time. These were all the people who came out of the Manhattan project and were still producing great work from Lawrence Berkeley Labs and Lawrence Livermore Labs.

One of my great opportunities was working as a research assistant for Charles Townes, who won the Nobel Prize for inventing the laser. A lot of my work as a young physics student was doing software development because these older generation professors had computer-driven experimental equipment but not a lot of programming skills. I did a lot of writing code in Fortran and C to control telescopes and various material sciences machines.

When I got out of university, I started working in software development while I decided which graduate student program I would go to. It turned out that I really liked writing software and I really liked making money, and those were two things that I wasn't going to get to do as a PhD student. So I stayed in the software business.

I worked at Microsoft for about three years and then moved on to a company called Securant, which did security software. They were bought by RSA. At that point, with a little money under my mattress, I decided I would start my own business and start working on my own projects instead of working on someone else's projects.

I started a service called WikiTravel in 2003 with my wife. We were partners on that project---my wife is an information scientist who does data organization and taxonomy, so her input was really valuable on WikiTravel. It was like Wikipedia meets Lonely Planet, a worldwide travel guide built by travelers themselves sharing information with each other. By 2007 we had sold it to Internet Brands.

I was looking for my next thing to do and wondering where my life was going to go when I was invited to an event in Boston at the Free Software Foundation, the older open source organization run by Richard Stallman. They invited me and a number of other people who had been involved in Creative Commons---WikiTravel was all Free Software, all Creative Commons content---and other people who had built big network services using open standards and open-source software. They asked us to come do a big workshop and think about what we were going to do about network standards.

That was me, Aaron Swartz was there, Mike Links, Lewis Villa, and Benjamin Mako Hill. It was a really great group of people who were very enthusiastic about taking this movement around open source software, which had been about programming editors and compilers, and bringing it to network services that people use over the Internet. This was in 2007, so definitely ten years late, but still a very interesting set of people.

We put together the Franklin Street Statement---Franklin Street is where the FSF headquarters were---about how people should use network services. Use open source software, use open data, use systems that you can set up yourself and can control on your own servers. Don't use stuff that you have to be dependent on. It was a really exciting time. I came out of the meeting thinking, "Boy, I can't wait to start a new service."

This was 2008. Twitter had just launched at South by Southwest in 2007. They had been running in stealth mode among Web 2.0 digerati, and in March of 2007 they opened up to the public. I was there, and I tried it, and I was like, "Oh, I get this." About six months later, I started writing the software that would become StatusNet and started writing the code that would become Identi.ca.

This was mid-2000s, and there was this open-source inevitabilism---this sense that if you've got a word processor, we're going to make an open-source word processor that's going to be as good or better, and we're going to wipe out your business. If you've got a server operating system, we're going to make an open-source server operating system. No matter what commercial corporate organizations could make, we would undercut the value by making an open-source alternative.

Some worked better than others.

Yes, exactly. So I was like, "Oh boy, I'm going to be the one that makes the open-source Twitter." I started building it and shared it with this group of people who had been at this Franklin Street meeting. They were excited about it. They were working on Identi.ca, they were sharing and having conversations there.

Then we had a moment where people were starting to use the source code on their own servers, and they were like, "Well, now we're cut off from the conversation. We took the software, we're exercising this control that you say we should have, but if we move to our own servers, we're locked out."

Within about a week, I wrote the first distributed social networking protocol called OpenMicroBlogging, and it was dead simple. You could follow someone and anything they posted would get posted into your timeline. I don't think it had replies, it didn't have likes, it didn't have any rich interaction, but it was enough to make someone remote into part of your network, and that felt like it would work well enough.

There was a lot of excitement at the time in these social systems and in the software that I wrote because Twitter was having a lot of technical problems as it grew. There was real interest from the wider social networking community saying, "Hey, this open source software---anybody can install it, it can be distributed. Why are we trying to do all our work on this one server rather than using this distributed system?"

I raised venture capital in this company. The original name of the software was Laconica---like laconic, meaning "short text"---but we changed it to StatusNet, and that's what it was known as for most of the time period. I raised venture capital, which was first time I had done that. That was very interesting.

At the same time we were doing this, there was a lot of activity going on in other parts of what was loosely called the "open web stack." OAuth had started, based on work from teams at Flickr and Twitter. Then Google jumped in, and some of the bigger companies jumped in. That little circle of people became the Open Web Foundation, and they developed a few really interesting protocols.

Brad Fitzpatrick, who had founded LiveJournal and then was at Google at the time, created this protocol called PubSubHubbub---worst name ever. But it built on the push process that I had done with OpenMicroBlogging. He made it scalable, at Google scale, and it really got picked up. There was a point at which all the Google blogs and WordPress blogs and Tumblr had this push mechanism built in.

There was also the development of a data structure system based on RSS and Atom called ActivityStreams. It basically took the flat blog post structure of RSS, where it's a title and some text and maybe an image embedded, and they were like, "What if we added rich semantic meaning to this content?" So this item in this feed doesn't represent a blog post---it represents a like, or it represents a comment or reply. They built in this structure on top of Atom.

It also became quite popular. Facebook had an ActivityStreams feed, WordPress had it, and I think Google had it in some of their systems. The Open Web Foundation that was putting out interesting systems. WebFinger came out at this time too---having an email address identifier that you could use for different services.

StatusNet was doing well. We launched a SaaS service so you could sign up and get your own StatusNet system for like $5 a month---your own social network that would connect to all the other StatusNet social networks and Identi.ca. But we were running into some problems with OpenMicroBlogging barely working.

StatusNet included me, Brooke Vibber (who had been CTO at Wikipedia and had joined StatusNet to help us build this system), James Walker (who had been one of the core Drupal developers), and Zack Copley (who had been at StatusNet since the beginning). We were lucky to have a lot of really great open-source software developers. We put together a standard called OStatus. It was basically taking PubSubHubbub, ActivityStreams, this other comment system called Salmon, and WebFinger, and putting the glue together to make them work together as a standard.

When I say standard here---this is an interesting time period because there was a lot of "Hey, we made a protocol, we're sharing it with everyone, if you want to implement this, you can" without a lot of the overhead that was happening in bigger standards organizations. It was really refreshing but also turned out to be a problem for adoption because bigger corporations were like, "Hey, we have no idea who has any intellectual property in these projects, who's got patents, have you done a patent search?" It was just a bunch of engineers throwing things together.

We had two ways that our software was used. One was in enterprises---Target, Motorola, Deutsche Bank, and a number of big companies had installed our software on their internal networks for their employees. We were doing pretty well in this area, but this other company Yammer had done way better. They had a really aggressive customer acquisition strategy and they basically cleaned our clocks. They were acquired by Microsoft, and that was it for my investors. They were like, "All right, you're done. We're not going to invest more in you for this enterprise social networking stuff because clearly you've been beat."

Then, on the public side, around 2011 and 2012 is really when we saw the consolidation of social networks. I call it the big squeeze. There had been a lot of interesting social networks in the late 2000s---Hi5, Bebo, MySpace, and different regional ones in different countries. Gradually, with a huge amount of venture capital and a lot of work, the few big networks had pushed out these other ones. Twitter, Facebook, LinkedIn---they had done really good work, but they had pretty much taken over these markets.

One thing that was interesting at this time was that the success of Facebook or Twitter in these early five or six years was partly due to the fact that they were open platforms. Facebook had launched Facebook Platform in 2007, which was their API system. You could actually build software that would run in the browser on the Facebook web page---put a little widget on someone's profile that was active and would do things like show a movie or something. It was a very open platform for developers.

Similarly, Twitter's API was kind of a mistake---they used Ruby on Rails, which comes with an API built in, and they didn't turn that off. It became a huge success. People loved developing for it. They built alternative UIs, data scrapers, and all kinds of things using the APIs. That's one of the ways you can be successful in business---make a lot of other people successful. If you can make someone who built a Twitter API client dependent on that service, they're going to be advocates for your service. They're not really going to be open to other services---they're on the Twitter train.

Because of that, we had a hard time talking to people about how there could be other platforms, how you could set up your own platform and still stay connected to others. As we were getting into the early 2010s, it was like, "Why would you have another social network? There is one social network: Facebook. Or there is one microblogging network: Twitter. What's the point of having multiple ones? Why would you connect multiple ones?"

I think we kind of hit a high point in those early 2010s with Google Buzz. Google had hired a lot of the people I was talking about who were involved in the process building lightweight standards---Brad Fitzpatrick, Chris Messina, John Panzer, Joseph Smart. They had brought together a lot of people who had done interesting work in this area, and they wanted to put out the most open, open-standards, distributed system.

The way Google Buzz worked was that you could pull all your different social network presences together and then rebroadcast them through open standards. They used the same stack that we did---they were using ActivityStreams and PubSubHubbub and Salmon. We thought it was awesome. Around 2011 or 2012, engineers at the Google I/O conference did demo a three-way interaction between Google Buzz, Cliqset, and StatusNet using OStatus. They had this whole conversation happen live on stage. It was this great moment, like "Wow, this is really taking off!"

I don't remember that---it's the dream we're still chasing, right?

But Google Buzz had a fatal flaw. The way that they kickstarted your social graph---the number of people that you're connected to---was using your Gmail contact list. Almost immediately there started being stories about people who were like, "Wait a minute, my abusive ex-boyfriend now has access to all my social networking stuff because I had his email address in my contact list." It was just a bad example of "Hey, we're going to use this data that we've collected for you as part of this one system to kickstart this other system."

They got sued and had a multi-million-dollar settlement. It was really bad---it had nothing to do with how the software worked, it was all about this contact list integration. But at this point at Google, they're associating open standards with catastrophic failure, terrible press, and bad privacy situations.

For me, it was a bad time because we had run out of money and had no additional investors. We had a small amount of revenue coming in from the SaaS service that we were running, but it couldn't support the big free networks we were running like Identi.ca. So I had to shut down the company. I had to let go all the engineers, and I also had this huge social network, Identi.ca, that was costing like $5,000 a month---it was a very expensive process for me to keep all the servers running.

So I wrote a new software package called pump.io that was written in Node.js. The previous version had been in PHP. It basically took everything that we had learned from five years of running a social network and applied it to the new structures. So instead of using Atom, which is an XML standard, we used JSON. This was almost entirely me solo, working by myself, because I'd lost all my employees.

Because you were paying the server costs, you wanted to enable other people to migrate off it and run their own servers?

Partly. But also because it meant I could run my servers much more cheaply.

It reduced the load.

Exactly. I converted from StatusNet to pump.io and transferred StatusNet---which became GNU social---to some enthusiasts at the Free Software Foundation who were like, "We want to keep running with this." I was like, "Great, take it, go with it." Then I built this pump.io project. It turned out great---Identi.ca is still running and still uses pump.io software. It is nowhere near its peak though. It was about 5 million users; now it's probably like 500 users, maybe. It's a very small number of people.

I did this pump.io software, released it, and moved Identi.ca to it, and then kind of walked away. I had done what I intended to do, and I was like, "Hey, that dream of a distributed social network is gone. These big social networks like Twitter and Facebook are no longer one among many---they are essential infrastructure, they're part of the way that the Internet works."

Just as they were shutting down their open APIs.

Absolutely. At this time, Twitter had a big event called the Chirp Developer Conference, which they had been organizing for like six months---"Come to the Chirp conference, exciting stuff!" Then, just before the conference, they had a big blog post---I think it was from Ev Williams---that was like, "Hey, we're shutting down the API for all but a few uses." We were at the conference. Our software actually had a Twitter-compatible API, so we were encouraging developers to take their tools and port them to use StatusNet instead. We had some interest there, but it was mostly these folks who had become dependent on these big networks and who had been part of making them successful---they were kind of out in the cold.

That was an interesting lesson. Same thing with Facebook Platform, although it was less dramatic. They did it gradually over time, just turning off a few API endpoints at a time. They converted to this format called Open Graph, which was not as featureful as their previous API, and then they turned off the old API.

At this time, Diaspora started. Diaspora was four young men at NYU, and they decided they were going to do a distributed version of Facebook. They dropped out of school, did a Kickstarter, and raised more than $200,000, which was the second biggest Kickstarter ever at that point. And they moved to California for some reason---that was probably how they spent most of their $200,000.

They built this great service, but it wasn't compatible with our distributed social networking. Me and my team were like, "Wow, this seems like a real opportunity that went to waste---they just did a brand new protocol and didn't even work with us to have some interoperability." So we started a project called the Federated Social Web Summit, where we tried to gather everyone who was working in social web software. We put out invitations to, I think, like a hundred projects. We got like 50 projects in. Almost none of them had compatible protocols---all of them were writing their own software and writing their own protocols.

We set up the summit process so it wasn't open to the public, it was only for the developers, and you had to have working code to come and be able to demo it. It was a super success. So first of all, the Diaspora guys were like, "Oh yeah, we should probably support your protocol too," so they supported OStatus, which was awesome---just wonderful folks.

We did three iterations of that---one in Portland, one in San Francisco, and one in Berlin over three different years. So this is like 2010, 2011, and 2012, and it was a great process. We had a super valuable process. I think we got a lot of cross-pollination.

One of the things that happened is that some of the projects had been involved in the World Wide Web Consortium, and the W3C got interested in supporting this kind of work. So I joined a group at W3C---they invited me to join to do what they call an interest group, where you're thinking far ahead and exploring a new space. At the time, I had started another company called Breather, so I wasn't working on social software at all. Breather was room rental.

Let me rewind a second and talk about OpenSocial. About the time that Facebook Platform started, there were all these other social networks---again, Hi5, Bebo, Orkut. It sounds like glossolalia when I say them out loud! If you look at the Wikipedia list of social networking platforms, there are so many, and they all have silly names.

But all these other ones were like, "Hey, we have to build our own platform." The solution that they came up with was, "We can't compete with Facebook by all having our own different ways for building applications." So they built a single way for building widgets on a homepage called OpenSocial, and it covered one part of the problem. They didn't have any federation involved. The idea was if I build a zombie bite app and put it in Orkut, it should also work in Hi5.

So it enabled developers to simultaneously develop for all these smaller networks.

Yes---you could just build something once and then register it on all these different services.

OpenSocial was announced with great fanfare. Google led it. They had a bunch of developers doing it. Then by early 2010s, all these companies had gone out of business. What had actually happened was that enterprise social networks---at big companies like IBM and Boeing---had invested in building applications on top of this framework for their employees. When the OpenSocial organization peaked and then dropped off---I was on the board at the time---we thought, "How about we hand off all our IP, like all our standards, all our domains, off to W3C?" The W3C took it. I think partly because they had a lot of the same corporate members---IBM and Boeing were OpenSocial members, and they were W3C members, and the W3C members wanted to keep control.

Then W3C had to decide what to do with it. They asked this very active W3C employee named Harry Halpin. He was like, "I've got an idea. Let's pull together these OpenSocial folks, all these Federated Social Web folks, and Tim Berners-Lee." Tim Berners-Lee, founder of W3C, the father of the Web, was starting to get interested in social networking too, and he wanted to use his favorite technology, the Resource Description Framework or RDF, to solve social networking.

So Harry was like, "Let's bring these three groups together and make a working group at W3C," which is how you make standards. They asked Tantek Çelik---who has been doing browser standards at Microsoft, then at Mozilla, for the last twenty years---to be a co-chair. Then there was Art Barstow, who was working at IBM and had done a lot of RDF stuff. And me. So they asked the three of us to co-chair this group.

It was really interesting. The way that a group gets created at W3C is that they have to put together a charter---what is this group going to do, what's its outputs---and then they put it up for approval by the membership. And it got shot down. First of all, there were a number of big commercial social networks that were members of this group of W3C because they cared about HTML and stuff, and they were like, "No, we don't want you commodifying our business." Google at the time had been really burnt by Google Buzz, and they were like, "No way, no how---open standards toxic, do not want."

So we had to adjust this charter until these folks would sign on. I think when it came down to it, none of them said yes---they all just abstained from the vote. I think their expectation was that we were just going to face-plant, which was probably a good bet at the time.

So we started with literally zero. I was an open-source guy who had been doing open standards at this point for like six-seven years---I was probably the most experienced social network developer in that group. There was no one from Twitter, no one from Facebook, no one from Google. We had James Snell, who had worked at IBM and had done a lot of the ActivityStreams work there, but almost nobody involved were professional social networking folks.

We had a couple of people who had done open standards stuff from the Federated Social Web Summit group, and we had Tantek, who is the kind of standards guy who wants to get lots more people involved in standards. He was like, "Anybody who comes and says they're interested in being in this group, we just let them in." W3C has this whole thing where you have to be a member of a member organization or get invited by the chairs. And Tantek was like, "Let's just invite everybody." So we invited all these folks, and we had this super mixed bag of people.

We had probably three main tracks of folks involved. The first was from the track that I had been part of using ActivityStreams, using PubSubHubbub, using this OStatus stack, and then also OpenSocial, which also used a lot of the same technologies. They used ActivityStreams, they had a RESTful interface---it was at least very compatible.

We had Tantek who had been doing IndieWeb work for like a decade, which was about grassroots, amateur software developers---no standards, just a very open process. That group was like, "What is the minimal amount that we can do to support social standards?"

And then we had a third group that was led by Tim Berners-Lee, who gets a lot of weight at the W3C, as you can imagine. By this time he was Sir Tim Berners-Lee, and he was also participating with this whole semantic web group around him. They were like, "The only thing you need is RDF, and it'll all work, and it works perfectly. And why are we even here? We already have RDF."

I doubt any of them had ever used a social networking platform in their entire life. We were explaining things like a feed of activity, or liking something, having any kind of feedback to someone like commenting or liking or sharing, and they just couldn't handle it. They just had a very RDF-centric view of the world.

None of these folks knew what they wanted to do, so we put together this huge set of user stories---I think like 200 user stories, all these different things that you could do with social networks. Then we narrowed it down to something like 20 or 25---these are the ones that we're going to work on. And that was a fight.

Then we were opening up for potential standards, and we had these three groups who put together three different sets of standards. The IndieWeb folks put together a very light set of standards---Micropub, WebMention, a couple of other things---and they were like, "This is all we need. This is the lightest way you could possibly do social networking." And it was fine, it just wasn't as full-featured as some of the other stuff.

The people around Tim Berners-Lee put together this thing where you could publish a profile and declare like five friends or something, and they were like, "There you go, social networking." And we were like, "It doesn't do anything---what are you talking about?" And they got really upset, and they left. All of a sudden there were stories in all the major newspapers like "Tim Berners-Lee is going to solve social networking!" He started the Solid project at that time, took it out of the standards process, and got venture capital and went and built---what it's called---Inrupt. So he was off on his own.

That left the group around OStatus, and one of the people who had been a developer for pump.io, and had built some of the clients and software that worked with pump.io, was like, "Hey, I think pump.io has a great API, great federation, super nice architecture." This is Erin Shepherd. She wrote up a submission. Basically, she took the pump.io API, added some things, took out the word "pump.io," and changed how it worked just a small bit. Then she submitted it.

So we had these submissions---the RDF people had gone, so we had these two sets of submissions. One was from the IndieWeb group and then the one Erin did, which became called ActivityPump. That was the name because it took pump.io plus activities. The idea is you were pumping it out. It wasn't a great name.

But it was also a kind of tribute to what had come before.

We couldn't agree on any one of the models. Finally, Tantek and I sat down, and Tantek was like, "Hey, look, we can just publish all of these. Let's just go ahead and do it. That way we don't have to argue about which one's right and which one's wrong. Let's just get them out, and they'll be official W3C standards, and they're out there."

James Snell had taken the earlier versions of ActivityStreams and made a new one that was JSON-based---ActivityStreams 2.0. He had built most of it already, so we were in an editorial stage by then. It's the data structures defining what is a note, what is an article, what is an image. What does it mean to like something, to follow someone? He set up that architecture of the data structures. ActivityPump was the protocol for getting those data structures moved around.

But Erin, who submitted this proposal, was not interested in taking it any further. We had two people who had joined the group from an open-source project called MediaGoblin. It was kind of a distributed social network with a focus on images and video and things like that. They wanted to support OStatus, and I had been like, "Hey, you should come be part of this W3C thing. We're doing the next protocol after OStatus, so come help build that."

That was Christine Lemmer-Webber and Jessica Tallon, and they stepped up to edit the ActivityPump document, which was amazing. But it was their first time ever in standards world. At this point our star Tim Berners-Lee had left. We had a year and a half to two years to finish this project, and we had these two groups---the IndieWeb group and this ActivityPump group---that were not really working on the same stuff at all, with some hostility.

I know that for Christine and Jessica it was really tough. When you're doing standards, you get all these comments from folks who had nothing to do with social networking, and they had to manage it and edit this project. James Snell left about this time, so I took over ActivityStreams to get it over the finish line.

In 2016, this new project called Mastodon started. I don't know who it was---I definitely tried to point it out to them, but it may have been Christine who was like, "Look, don't use that old standard. It's got a lot of problems with it. You should use the new standard that we're almost done with."

And they did. So Eugen Rochko and a couple of other friends and collaborators built Mastodon on top of ActivityPub. We hit the end of our time period, and we had published a lot of documents, but we hadn't finished what was still called ActivityPump at the time. The W3C gave us an extension on our time to finish because Mastodon was doing so well.

I think we finished the actual spec in January 2019. We were done, and we had this popular open-source project using it. A bunch of other open-source projects started using the protocol---PeerTube for video, then Funkwhale for audio. It had a nice, lively little community happening with hundreds of thousands of people on the network. One of the last things we did with the standard was change the name from Activity Pump to ActivityPub. ActivityPump was a terrible name.

I think both names have their virtues.

Well, the social media space had almost a tradition of ridiculous names for a while.

Once ActivityPub was done, I set it as my goal to make Identi.ca compatible with this new standard. I had handed pump.io off to a maintainer named AJ, and they were working on it. I kind of drifted off. I worked at Wikipedia for two years and then worked for a couple of startups, and I really was not working on distributed social networking, which was such a relief, to be honest.

Everything you've just described sounds so exhausting.

Social networks are really hard when they're not popular, and they're hard for other reasons when they become popular. The scaling problems with social networks go up exponentially. Your resource demands grow as your number of users grow because they have more conversations, more connections. Your needs as the systems grow are way bigger, which is why so many social networks collapse.

It's a lot of time, a lot of effort. After 2013, this was no longer my full-time job. I was working at different places, I had two different startups, and I was doing this work as my second work. That's still the case to this day---I don't work professionally on ActivityPub.

Christine and, to some extent, Jessica continued at the W3C. We had this group called the Social Web Community Group, or Social CG, and it kind of picked up where the working group left off and worked on extensions and documentation and things like that, helping developers work together. But one of the things that happens when you publish a standard that takes years to get create is it becomes very fossilized, very ossified. You can add on to it, but you can't really go back and say, "Oh, it would have been better if we had done this." We had a working network of thousands of servers. If you change how it works fundamentally, half of those servers or three-quarters of those servers are going to be cut off. So you have to just do backwards-compatible changes, iterative changes rather than really big changes.

Do you have any regrets about what is in that ossified standard?

I don't have huge regrets. If I have any, it's that I did not help get us to a working reference implementation before I stepped back. There are some parts of the stack that were never built out. Mastodon had to define how servers authenticate each other. There was a lot of work that went into filling in the gaps in this structure that could have been done with a reference implementation instead.

Christine was co-leading the Community Group, but she had a lot of other things on her plate. And there was some really toxic behaviour in the Group. She stepped away from the W3C entirely, so by 2022, there's not really anybody with their hand on the tiller, and that's exactly the time when Elon Musk buys Twitter and people start thinking about going to other social networks. There was this flood of people onto Mastodon, and I was like, "Oh, this is great! Hey, wait a minute---what's going on? Nobody's running the store over here."

So in late 2022, early 2023, I was like, "Okay, my name is on these documents. I've access to all these GitHub repos. There are GitHub issue repositories that have like 200 un-triaged issues." And I was like, "Somebody's got to get in here. I think I'm the last person standing." So I started maintaining the spec again.

That happened about the same time that we started having meetings again. So it has really reinvigorated this organization. Now some of that stuff that was undocumented---like how you use WebFinger with ActivityPub, or how you use HTTP signatures, which is the authentication between servers---that's documented now in official documents. We're working on new kinds of social activities like geosocial---doing check-ins, saying where you are, putting things on maps---and doing groups, like having a distributed group that you can post to privately. We've done work on end-to-end encryption.

Over the last year, I wrote a book for O'Reilly, ActivityPub: Programming for the Social Web. I also started a nonprofit called the Social Web Foundation for encouraging use of ActivityPub. We lucked out that there has been commercial uptake with ActivityPub---Threads from Meta, as well as Flipboard, WordPress, and Ghost. The intent is to keep that rolling.

I started a cooperative Mastodon service at cosocial.ca. It's become a bigger part of my life over the last couple years than it had been for the years before.

I'm kind of a universalist---I think everyone should have access to this kind of technology and be able to make choices, stay connected to people even if they're on other social platforms. I think that one way that happens is by connecting more platforms to the network. I would love to see Snap and LinkedIn and TikTok all be connected over this space.

However, there's also this cultural underground that has built up. It's people with a mix of privacy concerns, maybe some anarcho-libertarian structures, folks who are very on that side of the political spectrum. And I don't know if it's entirely because of Christine and Jessica, who's also trans, or Erin, who's also trans---so like three of the five authors of this spec are trans women. That kernel of techie trans people became a really big, important part of the network as it exists now. They're like, "Why are you trying to bring people from outside to our Fediverse, which should be just for us?"

Being able to keep the flavor of that culture alive while still making the technology available to more people worldwide is tough, and I don't think---I have some people who get really angry at me about it. It's hard to figure out how to make sure that you can have this place that is safe and exciting and enjoyable, but at the same time make this technology available to everyone.

I don't know if I have an answer to that, or if I'm even the person who needs to have that answer. I'd like to at least make it technically possible---I'm not sure if I can be the person who preserves that culture. That might be something that others have to do.