ActivityPub

ActivityPub
Communication protocol
The image depicts a infographic of the basic functionality of ActivityPub. It shows a person (known as an Actor in ActivityPub terminology) reading incoming messages ("activities") from an inbox, which receives messages from other Actors (depicted as a cloud labeled "REST OF THE WORLD") via federation. The Actor also sends messages to their outbox, which the rest of the world receives via federation.
An infographic of the core functionality of ActivityPub
AbbreviationAP
PurposeDecentralized social networking
Developer(s)World Wide Web Consortium and
IntroductionJanuary 23, 2018; 7 years ago (2018-01-23)
Based onActivityStreams, JSON-LD
InfluencedAT Protocol[1]
Websiteactivitypub.rocks Edit this at Wikidata

ActivityPub is a protocol and open standard for decentralized social networking. It provides a client-to-server (C2S) API for creating and modifying content, as well as a federated server-to-server (S2S) protocol for delivering notifications and content to other servers.[2] ActivityPub is the defining standard of the Fediverse, a decentralised social network of various social interaction models, and content types, which consists of independently managed instances of software such as Mastodon, Pixelfed and PeerTube, among others.[3]

ActivityPub is considered to be an update to the ActivityPump protocol used in pump.io, and the official W3C repository for ActivityPub is identified as a fork of ActivityPump.[4][5] The creation of a new standard for decentralized social networking was prompted by the complexity of OStatus, the most commonly used protocol at the time. OStatus was built using a multitude of technologies (such as Atom, Salmon, WebSub and WebFinger), a product of the infrastructure used in GNU social (the originator and largest user of the OStatus protocol), which made it difficult to implement the protocol into new software. OStatus was also only designed to work with microblogging services, with little flexibility to the types of data that it could hold.

The standard was first published by the World Wide Web Consortium (W3C) as a W3C Recommendation in January 2018 by the Social Web Working Group (SocialWG), a working group chartered to build the protocols and vocabularies needed to create a standard for social functionality.[6] Shortly after, further development was moved to the Social Web Community Group (SocialCG), the successor to the SocialWG.

Design

[edit]

ActivityPub uses the ActivityStreams 2.0 format for building its content, which itself uses JSON-LD. The three main data types used in ActivityPub are Objects, Activities and Actors. Objects are the most common data type, and can be images, videos, or more abstract items such as locations or events. Activities are actions that create and modify objects, for example a Create activity creates an object. Actors are representative of an individual, a group, an application or a service, and are the owners of objects.

Every actor type contains an inbox and outbox stream, which sends and receives activities for a user. In order to publish data (for example liking an article), a user creates an activity that declares that they liked an Article object and publishes it to their outbox, where it is then delivered by the ActivityPub server via a POST request to the inboxes listed in the activity's to, bto, cc and bcc fields. The receiving servers then account for the newly received activity and update the article by adding the like action to it.

Example data

[edit]

An example actor object that represents a user account:[7]

{
  "@context": ["https://www.w3.org/ns/activitystreams",
               {"@language": "ja"}],
  "type": "Person",
  "id": "https://kenzoishii.example.com/",
  "following": "https://kenzoishii.example.com/following.json",
  "followers": "https://kenzoishii.example.com/followers.json",
  "liked": "https://kenzoishii.example.com/liked.json",
  "inbox": "https://kenzoishii.example.com/inbox.json",
  "outbox": "https://kenzoishii.example.com/feed.json",
  "preferredUsername": "kenzoishii",
  "name": "石井健蔵",
  "summary": "この方はただの例です",
  "icon": [
    "https://kenzoishii.example.com/image/165987aklre4"
  ]
}

An example activity that likes an article object:

{
  "@context": ["https://www.w3.org/ns/activitystreams",
               {"@language": "en"}],
  "type": "Like",
  "actor": "https://dustycloud.org/christine/",
  "summary": "Christine liked 'Minimal ActivityPub update client'",
  "object": "https://rhiaro.co.uk/2016/05/minimal-activitypub",
  "to": ["https://rhiaro.co.uk/#amy",
         "https://dustycloud.org/followers",
         "https://rhiaro.co.uk/followers/"],
  "cc": "https://e14n.com/evan"
}

An example article object:

{
  "@context": ["https://www.w3.org/ns/activitystreams",
               {"@language": "en-GB"}],
  "id": "https://rhiaro.co.uk/2016/05/minimal-activitypub",
  "type": "Article",
  "name": "Minimal ActivityPub update client",
  "content": "Today I finished morph, a client for posting ActivityStreams2...",
  "attributedTo": "https://rhiaro.co.uk/#amy",
  "to": "https://rhiaro.co.uk/followers/",
  "cc": "https://e14n.com/evan"
}

Project status

[edit]

The SocialCG previously organized a yearly free conference called ActivityPub Conf about the future of ActivityPub.[8][9] Triages are held regularly to review issues pertaining to the ActivityPub and ActivityStreams 2.0 specifications as part of the SocialCG.[10]

In 2023, Germany's Sovereign Tech Fund donated €152,000 to socialweb.coop with the goal of building a new suite for testing various ActivityPub implementations and their compliance with the specification.[11]

Adoption

[edit]

The initial wave of adoption for ActivityPub (circa 2016-2018) came from software that was already using OStatus as their federation protocol, such as Mastodon, GNU social and Pleroma.[12] Following the acquisition of Twitter by Elon Musk in 2022, many groups of users that were critical of the acquisition migrated to Mastodon, bringing new attention to the ActivityPub protocol with it.[13] Various major social media platforms and corporations have since pledged to implement ActivityPub support, including Tumblr,[14] Flipboard[15] and Meta Platforms' Threads.[16] Threads introduced crossposting to ActivityPub in 2024 for users outside of the European Economic Area,[17] however full 2-way compatibility remains incomplete as of 2025.[18]

Criticism

[edit]

Accidental denial-of-service attacks

[edit]

Poorly optimized ActivityPub implementations can cause unintentional distributed denial-of-service (DDOS) attacks on other websites and servers, due to the decentralized nature of the network.[citation needed] An example would be Mastodon's implementation of OpenGraph link previews, wherein every instance that receives a post that contains a link with OpenGraph metadata will download the associated data, such as a thumbnail, in a very short timeframe, which can slow down or crash servers as a result of the sudden burst of requests.[19][20]

Account migration

[edit]

ActivityPub has been criticized for not natively supporting moving accounts from one server to another, forcing implementations to build their own solutions.[21] While there has been work on building a standardized system for migrating accounts using the Move activity via the Fediverse Enhancement Proposal organization, the current proposal only allows for basic follower migration, with all other data remaining linked to the original account.[22]

Missing content and data

[edit]

ActivityPub implementations have been criticized for missing replies and parts of reply threads from remote posts, and presenting outdated statistics (e.g. likes and reposts) about remote posts.[23][24] However, this isn't a problem with the ActivityPub protocol itself, but with implementations not refreshing their content for updated data when needed.[25][26][citation needed]

Software using ActivityPub

[edit]
Software name Total users[27][28] Initial ActivityPub-compatible release Type of software Fork of
Akkoma 9,530 2022[29] Blogging Pleroma
BookWyrm[30] 49,600 2021[31] Book cataloging
Castopod 818 podcasts[32] 2020[33] Audio hosting
Discourse ? 2025[34] Internet forum
dokieli ? 2018[35] Authoring system, Blogging, Notification system, Semantic publishing, Web annotation
Epicyon 3 2019[36] Blogging
Firefish 4,560 2022[37] Blogging Misskey
Flipboard[38] 145,000,000[39] 2023[40][41] Social news
Friendica[42] 19,800 2019 Blogging, event management, groups, image gallery
Funkwhale 8,850 2018[43] Audio hosting
Gancio[44] 1,900 2020[45] Calendar, event planner
Ghost[46][47] ? 2025 (in beta)[48] Blogging
GNU social 93 2018[49] Blogging
Guppe[50] not relevant 2021[51] Groups
GoToSocial 38 2021[52] Blogging
Hollo 64 2024[53] Blogging
Honk 6 2019[54] Blogging
Hubzilla[55] 6,740 2017 Blogging, event planner, file hosting, image gallery, wiki
Iceshrimp[56] ? 2023 Blogging Firefish
Iceshrimp.NET[57] ? 2024 Blogging
Inventaire.io[58] ? 2021 Book cataloging
kbin[59] 507 2023 Social news
Lemmy[60] 485,000 2019 Social news
Libervia[61] ? 2022 (in beta) Blogging, event management, file sharing, instant messaging
lotide[62] 462 2020[63] Social news
Mastodon 7,960,000 2017[64] Blogging
Mobilizon 76,900 2020 Event management, groups
mbin[65] 6,950 2023 Social news kbin
Micro.blog 198,000 2021[66] Microblogging
microblog.pub 39 2022[67] Blogging
Misskey 1,052,511 2018[68] Blogging
Nextcloud Social 50 (approx.) 2018[69] Blogging
NodeBB 2,750,000 2025[70] Internet forum
Owncast[71] 191 2022 Live streaming
PeerTube[72] 473,000 2018 Video sharing
PieFed 1,116[73] 2023[74] Social News
Pixelfed[75] 857,000 2018 Image sharing
Pleroma 52,000 2018[76] Blogging
Plume[77] 24,400 2018[78] Blogging
Postmarks[79] 25 2023[80] Social bookmarking
Sharkey[81] 23,100 2023 Blogging Misskey
Snac[82] 3,070 2022[83] Blogging
Socialhome 3,000 2016[84] Blogging
Streams[85] ? 2022[86] Blogging, image sharing, wiki
Takahē 341 2022[87] Blogging
Threads 130,000,000[88] 2023[89] Blogging
Wafrn[90] 2,480 2023 Blogging
WordPress[91][92] 29,100 in 6,000+ blogs[93] 2023[94] Blogging
WriteFreely 73,200 2018[95] Blogging
Zap[96] 1 2019[97] Blogging, file hosting, image gallery

Future implementations

[edit]

Uncertain future implementations

[edit]
  • GitLab, a Git forge and development platform which had previously had an open issue discussing the topic, but was later closed due to the development team moving focus to other areas.[99]
  • Tumblr, a microblogging platform. Despite previous statements from Automattic CEO Matt Mullenweg,[100][101][102] ActivityPub integration has been delayed indefinitely. The integration would've been implemented with its WordPress migration, as the first-party plugin for interoperability would've been used for federation.[103]

See also

[edit]

References

[edit]
  1. ^ "FAQ". AT Protocol. Retrieved June 20, 2024.
  2. ^ "W3C Recommendation 23 January 2018".
  3. ^ Pierce, David (February 7, 2024). "The fediverse, explained". The Verge. Retrieved June 20, 2024.
  4. ^ w3c/activitypub, World Wide Web Consortium, June 20, 2024, retrieved June 22, 2024
  5. ^ "Sandstorm and the Social Web". zenhack.net. May 29, 2016. Archived from the original on October 30, 2020. Retrieved September 23, 2017.
  6. ^ "Social Web Working Group". W3C. Retrieved June 23, 2024.
  7. ^ "ActivityPub Specification". W3C. January 23, 2018. Retrieved June 22, 2024.
  8. ^ "ActivityPub Conf 2019". Archived from the original on March 8, 2021. Retrieved August 1, 2020.
  9. ^ "ActivityPub Conf 2020". Archived from the original on June 2, 2021. Retrieved August 1, 2020.
  10. ^ "W3C Social Web Incubator Community Group Mailing List". Retrieved March 18, 2024.
  11. ^ "ActivityPub Test Suite". Sovereign Tech Fund. Retrieved May 26, 2024.
  12. ^ "Pleroma Encyclical: ActivityPub". blog.soykaf.com. February 10, 2018. Retrieved June 23, 2024.
  13. ^ MacManus, Richard (November 15, 2022). "Devs Are Excited by ActivityPub, Open Protocol for Mastodon". The New Stack. Retrieved June 23, 2024.
  14. ^ Perez, Sarah (November 21, 2022). "Tumblr to add support for ActivityPub, the social protocol powering Mastodon and other apps". TechCrunch. Retrieved June 23, 2024.
  15. ^ McCue, Mike (December 18, 2023). "Flipboard Begins to Federate". Flipboard. Retrieved June 23, 2024.
  16. ^ Guinness, Harry (July 12, 2023). "How ActivityPub is setting the stage to weave all your social media feeds together". Popular Science. Retrieved June 23, 2024.
  17. ^ Su, Christopher; Blackstein, Simon (March 21, 2024). "Threads has entered the fediverse". Engineering at Meta. Meta. Retrieved September 6, 2025.
  18. ^ Perez, Sarah (June 17, 2025). "Threads expands open social web integrations with fediverse feed, user profile search". TechCrunch. Retrieved September 6, 2025.
  19. ^ "Please Don't Share Our Links on Mastodon: Here's Why!". It's FOSS News. May 1, 2024. Retrieved June 18, 2024.
  20. ^ Balkan, Aral (November 9, 2022). "Is the fediverse about to get Fryed? (Or, 'Why every toot is also a potential denial of service attack')". ar.al. Retrieved June 18, 2024.
  21. ^ "FAQ | AT Protocol". atproto.com. Retrieved June 20, 2024.
  22. ^ fediverse. "FEP-7628". Codeberg.org. Retrieved June 20, 2024.
  23. ^ Wave, Setsune (December 17, 2023). "This is a serious problem the fediverse has..." Furries.club. Retrieved June 18, 2024.
  24. ^ Armando, Armando (June 19, 2024). "I think one of the things that most annoy newcomers to the #Fediverse is..." Fedia.Social. Retrieved June 19, 2024.
  25. ^ Nedelcu, Alexandru (December 21, 2022). "Missing replies · Mastodon · Discussion #22608". GitHub. Retrieved June 18, 2024.
  26. ^ Prodromou, Evan (June 19, 2024). "All of that information is available through ActivityPub..." CoSocial. Retrieved June 19, 2024.
  27. ^ "Fediverse Observer". fediverse.observer. Retrieved June 22, 2024.
  28. ^ "FediDB, Fediverse Network Statistics". fedidb.org. Retrieved June 22, 2024.
  29. ^ "Akkoma: A vision to refocus Pleroma". Coffee and Dreams. June 24, 2022. Archived from the original on July 1, 2023. Retrieved July 25, 2023.
  30. ^ bookwyrm. "Bookwyrm". Archived from the original on May 26, 2021. Retrieved May 26, 2021.
  31. ^ "BookWyrm (@bookwyrm@tech.lgbt)". LGBTQIA+ Tech Mastodon. May 6, 2021. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  32. ^ "Castopod Index". index.castopod.org. Retrieved May 2, 2025.
  33. ^ "Release v1.0.0-alpha.1: chore(release): 1.0.0-alpha.1 [skip ci] · ad-aures/castopod". GitHub. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  34. ^ "Discourse and the Fediverse!". Discourse. April 23, 2025. Retrieved May 11, 2025.
  35. ^ "ActivityPub implementation reports". Retrieved January 3, 2018.
  36. ^ "Epicyon 1.0 release | LibreServer Blog". blog.libreserver.org. Archived from the original on June 9, 2023. Retrieved July 25, 2023.
  37. ^ "firefish". Codeberg.org. Archived from the original on July 26, 2023. Retrieved July 26, 2023.
  38. ^ Perez, Sarah (May 23, 2023). "Flipboard becomes first app to support Bluesky, Mastodon and Pixelfed all in one place". TechCrunch. Retrieved July 7, 2023.
  39. ^ "Twitter, Who? Flipboard Adds Mastodon Features, Pushing Further Into Social Networking". CNET. Retrieved June 23, 2024.
  40. ^ "Flipboard is pivoting to ActivityPub and the fediverse". The Verge. December 18, 2023.
  41. ^ McCue, Mike (December 19, 2023). "Flipboard Begins to Federate". Medium. Retrieved January 2, 2024.
  42. ^ "Friendica 2019.01 released". Retrieved January 24, 2019.
  43. ^ Collective, Funkwhale. "Funkwhale Blog ~ Funkwhale 0.17 is out!". blog.funkwhale.audio. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  44. ^ "Home". Gancio. Archived from the original on July 24, 2023. Retrieved July 24, 2023.
  45. ^ "v0.21.0 · les / gancio · GitLab". GitLab. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  46. ^ Ahooja, Anuj (April 22, 2024). "Substack Competitor Ghost Announces ActivityPub Integration". We Distribute. Retrieved April 28, 2024.
  47. ^ Patel, Nilay (April 22, 2024). "Newsletter platform Ghost adopts ActivityPub to 'bring back the open web'". The Verge. Retrieved September 9, 2024.
  48. ^ "Social web (beta)". Changelog. April 1, 2025. Retrieved May 10, 2025.
  49. ^ diogo. "diogo/gnu-social". notabug.org. Retrieved June 22, 2024.
  50. ^ immers-space. "Decentralized social groups for ActivityPub". GitHub. Archived from the original on November 22, 2022. Retrieved November 22, 2022.
  51. ^ "Release First major release · immers-space/guppe". GitHub. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  52. ^ "Release v0.1.0 · superseriousbusiness/gotosocial". GitHub. Archived from the original on July 22, 2023. Retrieved July 25, 2023.
  53. ^ "Release Hollo 0.1.0 · dahlia/hollo". GitHub. Archived from the original on January 26, 2025. Retrieved January 26, 2025.
  54. ^ "honk 0.1". flak.tedunangst.com. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  55. ^ "Hubzilla - Frequently asked questions". hubzilla.org. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  56. ^ iceshrimp. "iceshrimp". Iceshrimp development. Retrieved June 30, 2025.
  57. ^ iceshrimp. "Iceshrimp.NET". Iceshrimp development. Retrieved June 30, 2025.
  58. ^ "Inventaire toot". mamot.fr. December 7, 2021. Archived from the original on August 28, 2022. Retrieved October 17, 2022.
  59. ^ "kbin.pub - Fediverse of content". kbin.pub. Archived from the original on July 25, 2023. Retrieved July 24, 2023.
  60. ^ "Lemmy - ActivityPub for link aggregation". nlnet.nl. Retrieved June 5, 2023.
  61. ^ "Libervia progress note 2022-W45". salut-a-toi.org. November 2022.
  62. ^ "lotide". Archived from the original on October 31, 2020. Retrieved October 29, 2020.
  63. ^ "Release v0.1.1 · lotide-org/lotide". GitHub. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  64. ^ "Release v1.6.0 · mastodon/mastodon". GitHub. Retrieved June 22, 2024.
  65. ^ MbinOrg/mbin, Mbin, June 22, 2024, retrieved June 23, 2024
  66. ^ "ℹ️ Mastodon and ActivityPub". Micro.blog Help Center. March 8, 2021. Retrieved June 22, 2024.
  67. ^ "Release 2.0.0-rc.1 · tsileo/microblog.pub". GitHub. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  68. ^ "ActivityPub対応国産SNS「Misskey」、LTLも実装".
  69. ^ Poortvliet, Jos (December 10, 2018). "Nextcloud introduces social features, joins the fediverse". Nextcloud. Archived from the original on December 10, 2018. Retrieved December 10, 2018.
  70. ^ Tilley, Sean (January 20, 2025). "NodeBB Officially Joins the Fediverse". We Distribute. Retrieved February 12, 2025.
  71. ^ "Owncast v0.0.11". March 5, 2022. Archived from the original on March 5, 2022. Retrieved March 5, 2022.
  72. ^ "Server-Server - ActivityPub implementation reports". Retrieved January 2, 2019.
  73. ^ fedidb.com https://fedidb.com/software?page=3&software=piefed. Retrieved May 28, 2025. {{cite web}}: Missing or empty |title= (help)
  74. ^ https://join.piefed.social/blog/page/3/
  75. ^ Krasnoff, Barbara (August 2022). "Eight photo-centric social sites that are not Instagram". The Verge.
  76. ^ "ActivityPub in Pleroma". blog.soykaf.com. March 4, 2018. Retrieved June 22, 2024.
  77. ^ joinplu.me. "Plume". Archived from the original on May 10, 2019. Retrieved May 2, 2019.
  78. ^ "Release 0.2.0 (Alpha 1) · Plume-org/Plume". GitHub. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  79. ^ "postmarks". github.com. Archived from the original on September 15, 2023. Retrieved October 7, 2023.
  80. ^ "Postmarks". GitHub. September 5, 2023. Archived from the original on September 23, 2023. Retrieved October 7, 2023.
  81. ^ "FediDB, Fediverse Network Statistics". fedidb.org. Retrieved March 9, 2025.
  82. ^ "Snac - A simple, minimalistic ActivityPub instance written in portable C". snac2. Retrieved April 19, 2024.
  83. ^ grunfink. "snac2". Codeberg.org. Retrieved July 2, 2024.
  84. ^ "Release v0.1.1: Merge pull request #6 from jaywink/travisify · jaywink/socialhome". GitHub. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  85. ^ "streams". Codeberg.org. Archived from the original on July 9, 2023. Retrieved November 2, 2022.
  86. ^ "Official release". Mike Macgirvin. Archived from the original on December 13, 2023. Retrieved September 23, 2023.
  87. ^ "Release 0.3.0 · jointakahe/takahe". GitHub. Archived from the original on July 25, 2023. Retrieved July 25, 2023.
  88. ^ Perez, Sarah (February 2024). "Threads now reaches more than 130 million monthly users, says Meta, up 30M from Q3". TechCrunch. Archived from the original on February 2, 2024. Retrieved February 1, 2024.
  89. ^ Davis, Wes (December 13, 2023). "Threads is officially starting to test ActivityPub integration". The Verge. Retrieved June 22, 2024.
  90. ^ García, Gabriel Amador (June 21, 2024), gabboman/wafrn, retrieved June 22, 2024
  91. ^ "ActivityPub for WordPress". Github. Retrieved July 7, 2023.
  92. ^ "Engage a Wider Audience With ActivityPub on WordPress.com". WordPress. Retrieved October 12, 2023.
  93. ^ Pfefferle, Matthias; Automattic. "ActivityPub". WordPress.org. Retrieved June 23, 2024.
  94. ^ Sato, Mia (October 11, 2023). "WordPress now offers official support for ActivityPub". The Verge. Retrieved June 23, 2024.
  95. ^ WriteFreely (November 10, 2018). "Hello, World". WriteFreely. Retrieved June 22, 2024.
  96. ^ "Zap". zotlabs.org. Archived from the original on June 20, 2023. Retrieved July 25, 2023.
  97. ^ "Zap". zotlabs.org. Retrieved June 23, 2024.
  98. ^ "First forgejo monthly update - December 2022". forgejo.org. December 26, 2022. Retrieved August 29, 2023.
  99. ^ "Support ActivityPub for merge requests (&11247) · Epics · GitLab.org · GitLab". GitLab. Retrieved July 2, 2025.
  100. ^ Perez, Sarah (November 21, 2022). "Tumblr to add support for ActivityPub, the social protocol powering Mastodon and other apps". TechCrunch. Retrieved December 19, 2023.
  101. ^ Perez, Sarah (December 11, 2023). "Tumblr's 'fediverse' integration is still being worked on, says owner and Automattic CEO Matt Mullenweg". TechCrunch. Retrieved December 19, 2023.
  102. ^ Perez, Sarah (February 11, 2025). "Tumblr to join the fediverse after WordPress migration completes". TechCrunch. Retrieved February 12, 2025.
  103. ^ Peters, Jay (June 30, 2025). "Tumblr's move to WordPress and fediverse integration is 'on hold'". The Verge. Retrieved July 3, 2025.
[edit]