EN
Back to the archive

The encyclopedia · Software & IT · Technical decision · 2018

W3C's ActivityPub gave the fediverse one protocol for interoperable social networks

W3C standardized decentralized social networking in 2018 with one shared inbox model; Mastodon and PeerTube now interoperate.

W3C · Mastodon

the move

For years, social networks were closed islands: each service invented its own way of storing and moving posts. W3C's Social Web Working Group took on the problem and in January 2018 published ActivityPub as a W3C Recommendation, a decentralized social networking protocol built on the ActivityStreams 2.0 data format.

ActivityPub provides a client-to-server API for creating, updating and deleting content and a federated server-to-server API for delivering notifications and content between instances. The two APIs are deliberately similar — one shared model of actors and activities — so a project that learns one mostly gets the other.

By the time it was standardized, ActivityPub was already implemented and deployed across thousands of Mastodon instances with over a million registered users, and projects as different as Mastodon and PeerTube could interoperate, sharing videos and comments across servers with entirely different codebases.

why it works

  • One vocabulary for both APIs halved the implementation cost for newcomers.
  • An open W3C recommendation gave projects a neutral standard to build on.
  • Thousands of Mastodon instances shipped before ratification, proving it worked.
  • Interoperability across different codebases made federation a feature, not a compromise.
the payoffFederate with one shared activity modelneat

what transfers

Design the standard so client and server sides share one model: the simpler the path to compliance, the more implementers a protocol attracts.

what came after

ActivityPub became the foundation of the fediverse: Mastodon and PeerTube now exchange content over it, and the protocol remains W3C's reference point for decentralized social networking, with its client and server specifications still maintained by the web standards community.

references

spotted an error? The archive wants to know.

same kind of clever