Implementing ActivityPub from scratch is notoriously difficult due to fragmented HTTP signature standards (draft-cavage vs RFC 9421), JSON-LD document shape variability, distributed systems challenges like out-of-order delivery causing zombie posts, undocumented platform-specific quirks (Mastodon, Threads, Lemmy, Misskey), and security pitfalls like SSRF and signature bypass. Fedify, a TypeScript framework for Deno, Node.js, and Bun, abstracts all of these: it handles multi-spec HTTP signature negotiation (double-knocking), normalizes JSON-LD into typed immutable classes, provides queue-based delivery with ordered delivery guarantees, tracks platform quirks centrally, and defaults to secure behavior (SSRF protection, mandatory signature verification). It integrates with 13 web frameworks, supports 7 KV store adapters and 8 message queue backends, and ships a full developer toolchain including CLI scaffolding, a debug dashboard, OpenTelemetry instrumentation, and an ActivityPub-specific linter. Ghost, Hollo, and Hackers' Pub are among its production users.

16m read timeFrom hackers.pub
Post cover image
Table of contents
A quiet failureFive scenesSo I put all of it in a frameworkYour stack stays your stackTools for the whole development loopIt's already runningThe fediverse needs more apps
366 Impressions1 Comment