Fedify: ActivityPub server framework
@fedify@hollo.social
Fedify 2.0.0 is here!
This is the biggest release in Fedify's history. Here are the highlights:
- Modular architecture — The monolithic
@fedify/fedifypackage has been broken up into focused, independent packages:@fedify/vocab,@fedify/vocab-runtime,@fedify/vocab-tools,@fedify/webfinger, and more. Smaller bundles, cleaner imports, and the ability to extend ActivityPub with custom vocabulary types. - Real-time debug dashboard — The new
@fedify/debuggerpackage gives you a live dashboard at/__debug__/showing all your federation traffic: traces, activity details, signature verification, and correlated logs. Just wrap yourFederationobject and you're done. - ActivityPub relay support — First-class relay support via
@fedify/relayand thefedify relayCLI command. Supports both Mastodon-style and LitePub-style relay protocols (FEP-ae0c). - Ordered message delivery — The new
orderingKeyoption solves the “zombie post” problem where aDeletearrives before itsCreate. Activities sharing the same key are guaranteed to be delivered in FIFO order. - Permanent failure handling —
setOutboxPermanentFailureHandler()lets you react when a remote inbox returns 404 or 410, so you can clean up unreachable followers instead of retrying forever.
Other changes include content negotiation at the middleware level, @fedify/lint for shared linting rules, @fedify/create for quick project scaffolding, CLI config files, native Node.js/Bun CLI support, and many bug fixes.
This release includes significant contributions from Korea's OSSCA participants. Huge thanks to everyone involved!
This is a major release with breaking changes—please check the migration guide before upgrading.
Full release notes: https://github.com/fedify-dev/fedify/discussions/580
