I'm handing https://activitypub.rocks over to the community! And I wrote a post about it https://activitypub.rocks/news/handing-off-activitypubrocks-to-the-activitypub-community.html

I did the original design of activitypub.rocks 9 years ago and I haven't done much to keep it up to date. So the W3C SocialWG is taking over instead!

As a nice sendoff, the blogpost also includes some fun AP history, which I detail a bit in this thread too 🧵

For one thing, you may have heard the ahem "rumor" that the Official ActivityPub Test Suite, which was down for a long time because I am not a great sysadmin, was actually built out of the bones of a multiplayer text adventure game I had written.

AND THOSE RUMORS ARE TRUE!

It was kind of cool software though. It was kind of an interactive questionaire that would interrogate your implementation, and then generate a report that the activitypub.rocks site knew how to read

ActivityPub grew out of Pump.io's Pump API, and then was converted to a spec: see the document for more history about what was involved.

But I was also writing a lot of software to make sure things made sense. Not just the test suite! I also wrote several implmentations. Not only of the server-to-server protocol. Yes, the client-to-server too!

One of those implementations was called Pubstrate, and it was my main test implementation of things at the time, also written in Guile Scheme. I don't recommend using it; it's spec-compatible, but isn't going to meet all the expectations that have evolved since. But it did work, and you still technically can run it, and I think it had some neat ideas.

Here's the original messages from my test posts. I wrote them with my wife @mlemweb standing behind me, which you can see based on the text 💜

But one of the other things Pubstrate took really seriously was the ActivityStreams type hierarchy. I had gotten involved in ActivityPub standardization because I was working on MediaGoblin and @tsyesika was doing the federation work, and we wanted something that could handle all kinds of media. So here you can see image support.

The generic methods system in pubstrate tried to be very thoughtful about how things would render based off of a generic methods system I built for it.

But Pubstrate supported the idea of many media types, and even if it encountered a media type it didn't know how to render, it would render as much information as it did know how, and use type inheritence chain as cleverly as it could.

Pubstrate also supported video! So Peertube wasn't the first ActivityPub implementor of video in ActivityPub, I can claim that fame ;)

But Pubstrate was pretty crude and had no users so, well, maybe I can't ;)

~18 more replies (not shown)

Maybe you've heard: ActivityPub doesn't just have a server-to-server API, it also has a client-to-server API, which actually is pretty cool because it works almost just like the server-to-server API actually!

But almost nobody implemented client-to-server.

BUT I DID

Even more chaotically, I wrote an EMACS ACTIVITYPUB CLIENT

Again, pretty bare bones. But this is what I used to post to Pubstrate in the first post!

As you can tell from the screenshot, ActivityPub really is just "like email"

Anyway. ActivityPub standardization was a large portion of my life for a long time. Ironically, it became much less of my focus in my life right around the time it started to take off (I'm much more focused on @spritely now)

So over time, I've tried to hand over the reigns in bits and pieces. But activitypub.rocks was one last major pieces that was languishing sitting in my hands.

But the fediverse is great, and I'm happy the site has much better chance of care now. Onwards and upwards!