Skip to main content

Verified against Links and GitHub API repository status checked 2026-10-15; Mastodon v4.7.3 context_helper.rb; Matrix directory API; Stack Exchange API on 2026-10-15.

Developer Resources

A collection of libraries, tools, and resources for building ActivityPub and Fediverse applications.

Libraries​

Library listings, with maintenance status taken from package registries and forges, live on the ecosystem pages:

Tools​

Testing & Debugging​

ToolDescription
FediDBFediverse network statistics

Development Utilities​

ToolDescription
JSON-LD PlaygroundTest JSON-LD processing
WebFinger TesterTest WebFinger discovery

Reference Implementations​

Full Servers​

Widely deployed servers whose source is worth reading (see Server Software for the full list):

Minimal Examples​

ProjectLanguagePurpose
express-activitypubNode.jsSmall single-user server by Darius Kazemi — readable, but not a security reference
microblog.pubPythonSingle-user server (no GitHub activity since 2023)

Specifications​

Core Standards​

SpecificationURL
ActivityPubw3.org/TR/activitypub
ActivityStreams 2.0 Corew3.org/TR/activitystreams-core
ActivityStreams 2.0 Vocabularyw3.org/TR/activitystreams-vocabulary
JSON-LDw3.org/TR/json-ld
WebFingerRFC 7033

De Facto Standards​

SpecificationDocumentation
HTTP Signaturesdraft-cavage-12, RFC 9421, SWICG report, Mastodon's profile
NodeInfonodeinfo.diaspora.software
Mastodon Extensionsdocs.joinmastodon.org

Learning Resources​

Tutorials​

ResourceDescription
ActivityPub RocksOfficial resource site
How to Implement ActivityPubMastodon blog tutorial

Diagrams & Visual References​

ResourceDescription
boyter/activitypubSequence diagrams for common flows: Follow, Create, Delete, Announce, Move, WebFinger — a "clean room" implementation reference (MIT)

Books​

ResourceDescription
ActivityPub: Programming for the Social WebEvan Prodromou (O'Reilly, 2024) — building ActivityPub clients and servers, by a co-author of the spec
Move Slowly and Build BridgesRobert W. Gehl (Oxford University Press, 2025) — history and culture of Mastodon and the Fediverse

Community Resources​

Forums & Discussion​

ResourceDescription
SocialHubDeveloper community forum
Lemmy CommunitiesFediverse discussions
#fediverse:matrix.orgMatrix chat room

News & Updates​

ResourceDescription
We DistributeFediverse news
Fediverse ReportWeekly updates

Curated Lists​

ResourceURL
Delightful AP Developmentcodeberg.org/fediverse/delightful-activitypub-development
Awesome ActivityPubgithub.com/BasixKOR/awesome-activitypub
Fediverse.Party Toolsfediverse.party/en/tools

API Documentation​

Platform APIs​

PlatformDocumentation
Mastodondocs.joinmastodon.org/api
Lemmyjoin-lemmy.org/docs
Pixelfeddocs.pixelfed.org
PeerTubedocs.joinpeertube.org/api-rest-reference

Library Documentation​

LibraryDocumentation
Fedifyfedify.dev
go-fed/activity (unmaintained since 2022)pkg.go.dev/github.com/go-fed/activity
activitypub-federation-rustdocs.rs/activitypub_federation

Quick Reference​

Essential URLs​

Common Namespaces​

Mastodon's context, including the schema: terms it uses for profile fields (context_helper.rb):

{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"toot": "http://joinmastodon.org/ns#",
"schema": "http://schema.org#",
"PropertyValue": "schema:PropertyValue",
"value": "schema:value"
}
]
}

Getting Help​

Where to Ask Questions​

  1. SocialHub Forum - Best for implementation questions
  2. Matrix Rooms - Real-time help
  3. GitHub Issues - Library-specific questions
  4. Stack Overflow - the activitypub tag exists but sees little traffic; SocialHub is usually faster

Debugging Tips​

// Log incoming activities while debugging (never log secrets in production)
app.post('/inbox', express.raw({ type: '*/*', limit: '1mb' }), (req, res) => {
console.log('Received activity:', req.body.toString());
// Verify, then process...
res.sendStatus(202);
});

To check signatures, don't hand-roll a verifier: see Verifying incoming requests for tested code, or use your framework's built-in verification.

Next Steps​