May 9, 2023


Today I am releasing ActivityPub.Academy, a fully functioning Mastodon instance that helps you to understand ActivityPub!

The Mastodon mascot wearing a univeristy gown

Ever since I joined Mastodon, I was interested in how it works behind the scenes. How does a distributed (or federated) social network work? How do the different instances communicate with each other, and how is the data represented? I quickly arrived at the ActivityPub spec, which in theory should contain answers to all of my questions. But unfortunately, the spec is very generic, which makes it hard to read. There is even an often mentioned blog post that tries to teach you how to read the spec to make sense of it, and that is certainly useful. But the spec still remains fairly abstract.

I think that by far the best way to learn about a topic is by working through real examples. That was the motivation for creating when I started learning about systemd, and why I’m now releasing ActivityPub.Academy. It is not an academy in the usual sense with a set lesson plan. Instead, it is a fully functioning Mastodon instance with three new features that allow you to explore and understand ActivityPub.

Here is how you would use these features to understand ActivityPub. You can use Mastodon as usual, that is, follow other people, post messages, reply to or boost other people’s messages, etc. These actions trigger activities that are sent between the Mastodon instances, following the ActivityPub spec. ActivityPub.Academy records the activities and shows them in the Activity Log, where you can view and inspect them. This provides immediate feedback, which in my opinion is crucial for an efficient learning experience.

With the ActivityPub Explorer, you can investigate ActivityPub data. You can see how followers, posts, replies, etc. are represented in ActivityPub. Often, one dataset links to one or more other datasets, and the explorer provides an easy to use interface to browse through those. The Activity Log and the Explorer are connected, so that you can investigate the data referenced in activities.

The final feature is the one-click sign-up. For Mastodon to work you need a functioning account. Usually, you need to choose a username and password, specify an email address and react to a confirmation email. I think that this can already put off a lot of people, so I decided to make this as easy as possible. When you sign up for an account, all necessary data is auto-generated. All accounts are only valid for 24 hours, after which they are automatically removed, along with their posts, likes, followings, etc, so your learning journey doesn’t litter other instances.

Head over to ActivityPub.Academy and try it out. Let me know if this is useful or if there are things that are missing or could be improved. Also check out my accompanying blog post Understanding ActivityPub where I show how to use the academy to explore a few Mastodon features.

—Written by Sebastian Jambor. Follow me on Mastodon for updates on new blog posts.