The Glue That Holds the Fediverse Together

If you've heard of Mastodon, Pixelfed, or PeerTube, you might wonder: how can a photo-sharing app, a video platform, and a microblogging service all talk to each other? The answer is ActivityPub — a W3C-standardized protocol that defines how social data is sent, received, and understood across different servers and software.

You don't need to be a developer to understand ActivityPub. This article explains the key concepts clearly.

The Email Analogy

The simplest way to understand ActivityPub is to think about email. If you have a Gmail account, you can send an email to someone with a Yahoo address. The two companies run completely separate infrastructure, but they share a common protocol (SMTP) that lets their systems communicate.

ActivityPub works the same way for social media. A Mastodon server in Germany can deliver a post to a Pixelfed server in Canada, and users on both can interact — follow, like, comment — seamlessly. Neither server is owned by the same company. They just both speak ActivityPub.

Core Concepts: Actors, Objects, and Activities

ActivityPub has a clear vocabulary. Understanding three terms gets you most of the way there:

  • Actors — Entities that can send and receive messages. Usually a user account, but can also be a group, bot, or service. Each actor has a unique URL (like https://mastodon.social/users/yourname).
  • Objects — The content itself. A post (called a Note), an image, a video, an article — these are all Objects.
  • Activities — Actions performed on Objects by Actors. Common activities include Create (posting), Like, Announce (boosting/sharing), Follow, and Delete.

When you post something on Mastodon, your server sends a Create Activity containing your Note Object to the servers of all your followers. Those servers store the content and display it to the relevant users.

Inboxes and Outboxes

Every Actor in ActivityPub has two key endpoints:

  • Outbox — A public feed of everything the Actor has created or done.
  • Inbox — A private endpoint where other servers deliver Activities addressed to this Actor.

When you follow someone, their server starts delivering their new posts directly to your server's inbox. Your server then shows those posts in your home feed. It's a push-based delivery model — efficient and real-time.

How Federation Actually Happens

Here's a simplified walk-through of what happens when you post on Mastodon:

  1. You write a post and hit publish.
  2. Your server creates an ActivityPub Create Activity (a JSON document).
  3. Your server looks up the inbox addresses of all your followers on remote servers.
  4. It delivers (HTTP POST) the Activity to each of those inboxes.
  5. Each remote server verifies the message signature, stores the post, and displays it to the relevant local users.

Messages are signed using HTTP Signatures, a cryptographic mechanism that ensures the message actually came from who it claims to be from — preventing impersonation and spam.

Why This Matters

ActivityPub's power is that it separates identity and content from any single platform. Your identity belongs to your server (or, with some tools, to yourself). If a platform shuts down or changes its rules, the protocol itself still exists. New platforms can implement it and immediately connect with the existing ecosystem.

It's why a brand-new platform can launch today and immediately be accessible to millions of existing Fediverse users — no API negotiations, no partnership deals, no waiting. Just implement the protocol and you're in.

Who Created ActivityPub?

ActivityPub was developed by the World Wide Web Consortium (W3C) Social Web Working Group and became an official W3C Recommendation in January 2018. It builds on earlier work like OStatus and was heavily influenced by projects like GNU Social and pump.io. Today it is the backbone of the modern Fediverse.