Fedify: ActivityPub server framework's avatar

Fedify: ActivityPub server framework

@fedify@hollo.social

9 following1,123 followers

:fedify: Fedify is a TypeScript library for building federated server apps powered by ActivityPub and other standards, so-called fediverse. It aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.

Pinned

🎉 Excited to announce that is now on Open Collective! Support the project's development starting at:

  • Backer (from $5/mo)
  • Supporter (from $25/mo)
  • Sponsor (from $100/mo)
  • Corporate Sponsor (from $500/mo)
  • Custom donations welcome

Your support will help us maintain and improve Fedify. Check it out here:

https://opencollective.com/fedify

:fedify:

Fedify's Open Collective page showing the project logo, description as “A TypeScript library for building federated server apps powered by ActivityPub and other standards”, and five contribution tiers starting from $5/month Backer to $500/month Corporate Sponsor, with custom contribution options available.
ALT text

Fedify's Open Collective page showing the project logo, description as “A TypeScript library for building federated server apps powered by ActivityPub and other standards”, and five contribution tiers starting from $5/month Backer to $500/month Corporate Sponsor, with custom contribution options available.

Pinned

Fedify is an server framework in & . It aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.

The key features it provides currently are:

If you're curious, take a look at the website! There's comprehensive docs, a demo, a tutorial, example code, and more:

https://fedify.dev/

fedify.dev

Fedify

Fedify is a TypeScript library for building federated server apps powered by ActivityPub and other standards, so-called fediverse.

Fedify 2.2.0 is out! This release finally adds client-to-server (C2S) outbox listener support, proper HTTP 410 Gone responses for deleted actors via Tombstone, new integrations for SolidStart and Nuxt, and interoperability fixes for Lemmy and Pixelfed. Three new end-to-end tutorials also landed alongside a custom collections cookbook.

https://github.com/fedify-dev/fedify/discussions/733

github.com

Fedify 2.2.0: C2S outbox listeners, `Tombstone` support, SolidStart and Nuxt integrations, and three new tutorials · fedify-dev/fedify · Discussion #733

Fedify is a TypeScript framework for building ActivityPub servers. It implements federation details such as HTTP Signatures, JSON-LD processing, WebFinger, inbox and outbox routing, and activity de...

Fedify 2.2.0 is out! This release finally adds client-to-server (C2S) outbox listener support, proper HTTP 410 Gone responses for deleted actors via Tombstone, new integrations for SolidStart and Nuxt, and interoperability fixes for Lemmy and Pixelfed. Three new end-to-end tutorials also landed alongside a custom collections cookbook.

https://github.com/fedify-dev/fedify/discussions/733

github.com

Fedify 2.2.0: C2S outbox listeners, `Tombstone` support, SolidStart and Nuxt integrations, and three new tutorials · fedify-dev/fedify · Discussion #733

Fedify is a TypeScript framework for building ActivityPub servers. It implements federation details such as HTTP Signatures, JSON-LD processing, WebFinger, inbox and outbox routing, and activity de...

@hongminhee@hollo.social

The official Awesome Fedify site is now live:

http://awesome.fedify.dev/

It brings together real-world Fedify projects, packages, examples, tutorials, and talks in one place.

If you know a good resource we should list, contributions are welcome:

https://github.com/fedify-dev/awesome-fedify

github.com

GitHub - fedify-dev/awesome-fedify: Curated list of Fedify-related resources

Curated list of Fedify-related resources. Contribute to fedify-dev/awesome-fedify development by creating an account on GitHub.

We're working on a new for : Building a Federated Blog with Astro!

It walks you through creating a hybrid blog—static Markdown posts powered by content collections, with federation layered on top. By the end, your blog will be followable from Mastodon, send Create/Update/Delete activities when you publish or edit posts, and display replies as comments.

Preview the draft here: https://d180af62.fedify.pages.dev/tutorial/astro-blog.

We'd love your feedback—especially if you spot anything incorrect, unclear, or missing. Please leave comments on the GitHub PR #695 or issue #691.

github.com

Build federated blog example and tutorial (Astro + Bun) · Issue #691 · fedify-dev/fedify

Sub-issue of #99. Deliver the federated blog scenario as a paired example repository and fedify.dev tutorial, as set in #99 (comment). Scenario A single-author federated blog where posts are author...

Naru, the Korean version of , reportedly added an implementation in just an hour using . If you also want to implement ActivityPub quickly, give Fedify a try!

https://hackers.pub/@jihyeok/019da3d9-45b8-7629-96a8-b26bd62867c2

hackers.pub

Naru (Korean Neocities) gains ActivityPub support thanks to Fedify! Now, you can follow Naru personal homepages on the Fediverse, and receive updates at most once a day per website. For example, if you want to receive updates for https://yang.naru.pub, you can simply folllow @yang@naru.pub. I believe this is a significant improvement over polling websites and an effective way to stay connected with the indie web community.

Naru (Korean Neocities) gains ActivityPub support thanks to Fedify! Now, you can follow Naru personal homepages on the Fediverse, and receive updates at most once a day per website. For example, if you want to receive updates for https://yang.naru.pub, you can simply folllow @yang@naru.pub. I believe this is a significant improvement over polling websites and an effective way to stay connected with the indie web community.

@jihyeok@hackers.pub · Reply to Jihyeok Seo

Naru (Korean Neocities) gains ActivityPub support thanks to Fedify!

Now, you can follow Naru personal homepages on the Fediverse, and receive updates at most once a day per website. For example, if you want to receive updates for https://yang.naru.pub, you can simply folllow @yang@naru.pub.

I believe this is a significant improvement over polling websites and an effective way to stay connected with the indie web community.

yang.naru.pub

팀 양나루

@jihyeok@hackers.pub · Reply to Jihyeok Seo

Naru (Korean Neocities) gains ActivityPub support thanks to Fedify!

Now, you can follow Naru personal homepages on the Fediverse, and receive updates at most once a day per website. For example, if you want to receive updates for https://yang.naru.pub, you can simply folllow @yang@naru.pub.

I believe this is a significant improvement over polling websites and an effective way to stay connected with the indie web community.

yang.naru.pub

팀 양나루

@hongminhee@hollo.social

Significant performance improvements are expected in today's latest Fedify patch releases (v1.9.9, v1.10.8, v2.0.12, and v2.1.5).

Fedify security updates: 1.9.7, 1.10.6, 2.0.10, and 2.1.3

If you use Fedify, update to a patched release now. A high-severity denial-of-service vulnerability (CVE-2026-34148) affects Fedify's remote document loader and authenticated document loader. Both follow HTTP redirects without a redirect limit or loop detection. An attacker-controlled server can return a redirect loop for a keyId or actor URL fetch, causing a single inbound ActivityPub request to keep issuing outbound requests until the fetch times out.

All versions up to and including 2.1.0 are affected. Patched releases are 1.9.7, 1.10.6, 2.0.10, and 2.1.3. Update with your package manager:

npm update @fedify/fedify
yarn upgrade @fedify/fedify
pnpm update @fedify/fedify
bun update @fedify/fedify
deno update @fedify/fedify

After updating, redeploy. If you run other Fedify-based servers, update those too.

Thanks to Abhinav Jaswal for the report and responsible disclosure. Disclosure was coordinated with Ghost so they had time to ship their update.

If anything is unclear, ask below.

ghost.org

Ghost: The best open source blog & newsletter platform

Beautiful, modern publishing with email newsletters and paid subscriptions built-in. Used by Platformer, 404Media, Lever News, Tangle, The Browser, and thousands more.

@sabrinkmann@hachyderm.io

My first PR has been merged into the main branch of the @fedify project! It's the first step in integrating into Fedify. The next step is to build on the software.
Thank you, @hongminhee, for your patience and work!
I learnt a lot about JSON-LD. I still think there is more for me to learn...

@botkit@hollo.social

BotKit 0.4.0 is out! This release adds @fedify/botkit-postgres, a PostgreSQL-backed repository for deployments where SQLite isn't enough; a remote follow button on the bot profile page, so visitors can follow directly without manually searching from their own instance; and Session.republishProfile(), which lets you push profile changes to followers without waiting for the next post. It also upgrades the underlying Fedify dependency to 2.1.2, with a few small breaking API changes.

Full release notes:

https://github.com/fedify-dev/botkit/discussions/20

github.com

BotKit 0.4.0: PostgreSQL repository, remote follow button, and Fedify 2.x upgrade · fedify-dev/botkit · Discussion #20

We're pleased to announce BotKit 0.4.0. This release brings a PostgreSQL repository for production deployments, a remote follow button in the built-in web interface, a new API for broadcasting prof...

Fedify 2.1.0 is out!

The highlight of this release is onUnverifiedActivity(), a long-requested hook that lets you intercept inbound activities whose signatures couldn't be verified, instead of silently returning 401 and letting remote servers retry forever. Great for handling Delete activities from permanently gone actors.

Also new: full RFC 9421 Accept-Signature negotiation on both outbound and inbound paths, GoToSocial interoperability fixes, @fedify/mysql for MySQL/MariaDB backends, @fedify/astro for Astro integration, and fedify lookup --recurse for following reply chains.

Release notes: https://github.com/fedify-dev/fedify/discussions/642

github.com

Fedify 2.1.0: Unverified activity hooks, RFC 9421 negotiation, MySQL support, and Astro integration · fedify-dev/fedify · Discussion #642

Fedify is a TypeScript framework for building ActivityPub servers that participate in the fediverse. It handles the heavy lifting of federation—HTTP Signatures, JSON-LD processing, WebFinger, and m...

@sabrinkmann@hachyderm.io · Reply to Samuel Brinkmann

Wir sollten „Public Money = Public Social Media” also mehr pushen.
Habt Spaß und wenn ihr könnt, baut doch etwas mit z. B. @fedify oder @botkit.
Damit das Ganze hier aber wirklich skaliert, braucht es schlichtweg mehr Geld. Natürlich auch mehr Strukturen und Spezifikationen. Dass hier überhaupt etwas gebaut wird, ist schon großartig. Im Ehrenamt lässt sich nur schwer eine Alternative zu Big Tech aufbauen, wenn man möchte, dass ein Großteil der Bevölkerung Lust hat, diese Anwendungen zu benutzen. Geschweige vom Onboarding, auch auf dem Platten land.
Wer von Open Source spricht, sollte beim Fediverse Funding nicht schweigen.

Hier noch einmal eine Linkliste von Tools:
- Ihr habt Bock auf hübsche Wraps-Grafiken für euren Account: mastodon-wrapped.playground.54
- Ihr wollt eure Account-Einstellungen checken: mastodon-account-checker.playg
- Ihr wollt wissen, welche Organisationen schon auf Mastodon sind (täglich frisch aktualisiert): mastodon-account-checker.playg
- Jede Konferenz/Treffen braucht ein Hashtag und eine fediwall.de/
- Tägliche coole Geschichtlichen Wikipedia Links gibt es hier: @heute_vor

CTA
Seid erfolgreich im Fedvierse
+1: Public Money = Public Social Media
Baut Bots und föderierte Dienste mit Fedify und Botkit
Für die Adoption der “Massen” braucht es mehr Geld in Software und Community
Looking @ you Land SH / Bund / EU
Links Tools: @sabrinkmann@hachyderm.io
ALT text

CTA Seid erfolgreich im Fedvierse +1: Public Money = Public Social Media Baut Bots und föderierte Dienste mit Fedify und Botkit Für die Adoption der “Massen” braucht es mehr Geld in Software und Community Looking @ you Land SH / Bund / EU Links Tools: @sabrinkmann@hachyderm.io

@hongminhee@hollo.social

I've been thinking about adding federation health monitoring to —not as a separate data store or custom API, but by extending the existing integration. The idea is to expose delivery outcomes, signature verification failures, and per-remote-host error rates as OpenTelemetry metrics alongside the spans Fedify already emits. If you already have a Prometheus or Grafana setup, you'd get federation observability basically for free. Circuit breaker behavior (temporarily skipping a remote server that's been consistently unreachable) could surface as OpenTelemetry events, keeping everything in the same trace context rather than scattered across separate logs.

Does this sound useful to you? I'm curious whether people building on Fedify—or running federated servers in general—would actually reach for this, and what kinds of things you'd most want to observe. Happy to hear any thoughts.

@julian@fietkau.social · Reply to Julian Fietkau

(Disclosure: Using the name and logo of Encyclia – symbolically, since Encyclia is not a legal entity – I have an active monthly donation to @fedify on OpenCollective. However, I do not believe that this is getting me any preferential treatment, and in my observation the Fedify project treats all contributors and downstream implementers with equal respect.)

@julian@fietkau.social

Seems as good a day as any to thank @hongminhee and team for the exemplary work on @fedify. Following Fedify's big 2.0 release, my two largest interoperability pain points in @encyclia can be fixed. 🙂

github.com/fedify-dev/fedify/i means that people using @gotosocial will finally be able to follow @encyclia accounts soon (whenever I finish the upgrade).

github.com/fedify-dev/fedify/i will let me (and others) handle more account resolution edge cases and reduce failure mode traffic after Fedify 2.1 is out.

github.com

Improve handling of activities signed by non-resolvable actors · Issue #472 · fedify-dev/fedify

Summary Fedify currently cannot receive activities signed by non-fetchable actors. The HTTP 401 errors it emits in response to such actors cause remote servers to retry delivery of the same activit...

@erlend_sh@socialhub.activitypub.rocks

Jiwon (@z9mb1), one of our core contributors, drew a Fedify dino! How cute!

https://oeee.cafe/@z9mb1/2b5b0baf-466b-4c65-a1e0-d3588f0666f4

oeee.cafe

Fedify dino for notice

https://kre.pe/CKwN This is a paid request :) fediverse logo was attached afterwards.

@z9mb1@oeee.cafe

Fedify dino for notice

https://kre.pe/CKwN This is a paid request :) fediverse logo was attached afterwards.

Fedify dino for notice
ALT text

Fedify dino for notice

@z9mb1@oeee.cafe

Fedify dino for notice

https://kre.pe/CKwN This is a paid request :) fediverse logo was attached afterwards.

Fedify dino for notice
ALT text

Fedify dino for notice

@hongminhee@hollo.social

Started laying out a rough plan for implementing FEP-ef61: Portable Objects in —server-independent identities backed by , multi-server replication, and client-side signing. It's going to be a long road (13 tasks across 5 phases, with a few open questions that need answering before we even begin), but I think it's worth doing right.

https://github.com/fedify-dev/fedify/issues/288#issuecomment-3971459585

github.com

FEP-ef61: Portable Objects · Issue #288 · fedify-dev/fedify

Add support for FEP-ef61 for creating server indepent fediverse applications This FEP are depend on 8b32 which already available in Fedify

@icco@merveilles.town

Over the weekend, I created robot.villas using @fedify 2.0. Not knowing how activitypub worked made this a lot harder than I expected, but did get there in the end.

Each bot mirrors an RSS feed. @nyt_travel as an example. You can add your RSS feed for funzies at github.com/icco/robot.villas/b

Let me know if you run into any issues with my new little bot farm of news.

github.com

robot.villas/feeds.yml at main · icco/robot.villas

RSS to Mastodon Bridge. Contribute to icco/robot.villas development by creating an account on GitHub.

@hongminhee@hollo.social

Hi and developers!

I'm currently working on interoperability testing for and , and I need a account to test federation with their implementation.

Since there aren't many open public Bonfire instances available, I was wondering if any Bonfire instance admins out there would be willing to grant me a test account? It would be a huge help for improving interop! Let me know if you can help. Thanks!

@thisismissem.social@bsky.brid.gy

The really cool thing about this new architecture is that it can enable Client to Server architecture for AP with fedify (maybe vocab packages could be used in the browser too!)

@smallcircles@social.coop · Reply to 🫧 socialcoding..

@david_megginson @ben

Btw, just found the v2 release announcement of @fedify and that is a prime example on how, on the grassroots environment end of the spectrum we can maneuvre into better territory.

Kudos to the developers. Handing people tools they need to focus on solutions, and build without getting thrown into deep on-the-wire impl detail reeds to worry about.

That is the positive side of the equation. There's not only a big uptick in interest for the i.e. client-to-server, which offers new opportunity to correct course. But also are there more projects focused on robust tool and library support for the 'Solution developer' stakeholder.

In the revamp of the delightful commons initiative, made possible with support of @nlnet I emphasized all these projects, while I de-emphasized the apps that are already doing good for themself, but contribute to further divergence from open standards.

delightful.coding.social

hollo.social/@fedify/019c8521-

hollo.social

**Fedify 2.0.0 is here!** Thi…

**Fedify 2.0.0 is here!** This is the biggest release in Fedify's history. Here are the highlights: - **Modular architecture** — The monolithic `@fedify/fedify` package 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/debugger` package gives you a live dashboard at `/__debug__/` showing all your federation traffic: traces, activity details, signature verification, and correlated logs. Just wrap your `Federation` object and you're done. - **ActivityPub relay support** — First-class relay support via `@fedify/relay` and the `fedify relay` CLI command. Supports both Mastodon-style and LitePub-style relay protocols (FEP-ae0c). - **Ordered message delivery** — The new `orderingKey` option solves the “zombie post” problem where a `Delete` arrives before its `Create`. 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 #Fedify #ActivityPub #fediverse #fedidev #TypeScript