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 ;)

1+ more replies (not shown)