fedify is a free, open source social networking project written in TypeScript and released under MIT. It has 1,030 GitHub stars, 144 forks and 95 open issues, and was last pushed 15 hours ago. On this registry it ranks #33 of 47 tracked projects in Social Networking, with 5 head-to-head comparisons available. It gained 3 stars over the last 30 tracked days.

What is fedify?

Fedify is a TypeScript library for building federated server applications on ActivityPub, aimed at developers who want their own software to speak the fediverse protocol without hand-writing the protocol layer.

What it is

Fedify is an ActivityPub server framework distributed as a TypeScript monorepo. Its main package, @fedify/fedify, provides the core framework functionality, while the remaining packages supply integrations with various web frameworks and database drivers. The project targets Node.js, Bun, and Deno, and it is released under the MIT licence. It is a reasonably established project in its niche, with 1,025 stars, 135 forks, and 95 open issues at the time of writing, and it is documented at fedify.dev.

The concrete problem it solves is the boilerplate that sits between an application's own logic and the rest of the fediverse. Any server that wants to talk to Mastodon, Lemmy, Pixelfed, PeerTube, and similar software must perform WebFinger discovery, sign and verify requests, serialise and parse Activity Vocabulary objects, and advertise itself through NodeInfo. Fedify replaces the hand-rolled implementation of those pieces, so that the developer can focus on business logic and user experience rather than on wire formats and signature verification.

Key capabilities

  • Type-safe objects for Activity Vocabulary, including some vendor-specific extensions, so activities are constructed and validated in TypeScript rather than as loose JSON.
  • A WebFinger client and server for account discovery.
  • HTTP Signatures and HTTP Message Signatures for authenticating federated requests.
  • Object Integrity Proofs (FEP-8b32) and Linked Data Signatures for content verification.
  • Middlewares for handling webhooks.
  • NodeInfo protocol support, which lets a server describe itself to fediverse directories and peers.
  • A CLI toolchain for testing and debugging, together with enhanced interoperability with Mastodon and other popular fediverse software.

Who uses it and how

  • Developers building a microblog, following the project's own tutorial on creating a federated microblog.
  • Teams building media-oriented services, as covered by the tutorial on creating a federated image sharing service.
  • Bloggers and publishers, using the tutorial on building a federated blog, which integrates with the Astro web framework.
  • Operators of link-aggregation and discussion sites, following the tutorial on building a threadiverse community platform.
  • Teams with an existing federated implementation, using the migration guide for moving from other libraries.

Getting started

The framework is installed from JSR as @fedify/fedify or from npm as @fedify/fedify, with installation instructions published at fedify.dev/install. Tutorials and an examples directory in the repository cover the first steps after installation.

How it compares

Fedify stands alone in this registry, and the facts provided name no comparable framework or paid product that it replaces. The README refers to a migration guide for moving from other libraries, but it does not identify those libraries, so no direct comparison can be made from the available material.

When to use it — and when not

Fedify is a library, not a hosted service, so a self-hoster must supply and operate the surrounding application: a web framework, a database with the matching driver package, and the deployment environment for the chosen runtime. Developers who want a ready-made social platform rather than custom software should install an existing server such as Mastodon or Lemmy instead of building on this framework. The project carries 95 open issues, and teams that need a small, entirely stable dependency surface should review that backlog and the release history before committing.

project readme (upstream, from github) — read inline

Fedify: an ActivityPub server framework

JSR npm GitHub Actions Matrix @fedify@hackers.pub

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

Currently, Fedify provides the following features out of the box:

If you want to know more about the project, please take a look at the following resources:

If you have any questions, suggestions, or feedback, please feel free to join our Matrix chat space or GitHub Discussions. Or tag #Fedify in the fediverse!

[^1]: You may already know some of the networks in the fediverse, such as Mastodon, Lemmy, Pixelfed, PeerTube, and so on.

Packages

Fedify is a monorepo that contains several packages, each of which provides different features. The main package is @fedify/fedify, which provides the core functionality of the framework. Other packages provide integrations with various web frameworks, database drivers, and other features. Here is the list of packages:

Package JSR npm Description
@fedify/fedify JSR npm The core framework of Fedify
@fedify/cli JSR npm CLI toolchain for testing and debugging
@fedify/create npm Create a new Fedify project
@fedify/amqp JSR npm AMQP/RabbitMQ driver
@fedify/astro JSR npm Astro integration
@fedify/backfill JSR npm ActivityPub backfill support
@fedify/cfworkers JSR npm Cloudflare Workers integration
@fedify/debugger JSR npm Embedded ActivityPub debug dashboard
@fedify/denokv JSR Deno KV integration
@fedify/elysia npm Elysia integration
@fedify/express JSR npm Express integration
@fedify/fastify JSR npm Fastify integration
@fedify/fresh JSR Fresh integration
@fedify/h3 JSR npm H3 integration
@fedify/hono JSR npm Hono integration
@fedify/init JSR npm Project initializer for Fedify
@fedify/interaction-controls JSR npm Interaction control helpers
@fedify/koa JSR npm Koa integration
@fedify/lint JSR npm Linting utilities
@fedify/nestjs npm NestJS integration
@fedify/next npm Next.js integration
@fedify/nuxt JSR npm Nuxt integration
@fedify/mysql JSR npm MySQL/MariaDB driver
@fedify/netlify JSR npm Netlify Async Workloads integration
@fedify/pglite JSR npm PGlite driver
@fedify/postgres JSR npm PostgreSQL driver
@fedify/redis JSR npm Redis driver
@fedify/relay JSR npm ActivityPub relay support
@fedify/solidstart JSR npm SolidStart integration
@fedify/sqlite JSR npm SQLite driver
@fedify/sveltekit JSR npm SvelteKit integration
@fedify/testing JSR npm Testing utilities
@fedify/uri-template JSR npm RFC 6570 URI Template library
@fedify/vocab JSR npm Activity Vocabulary library
@fedify/vocab-runtime JSR npm Runtime library for code-generated vocab
@fedify/vocab-tools JSR npm Code generation tools for Activity Vocab
@fedify/webfinger JSR npm WebFinger client library for ActivityPub

Sponsors

This project exists thanks to all the people who contribute, donate, and sponsor it. We are grateful for their support. We would like to thank the following financial contributors:[^2]

[^2]: Those lists are automatically updated twice a day.

Corporate sponsors

Avatar Name Description
Ghost Fiercely independent, professional publishing
AltStore

Supporters

Backers

Robin Riley, Encyclia, box464, Evan Prodromou, taye, okin, yamanoku, malte, Rafael Goulart, Andy Piper

One-time donations

Robin Riley, malte, Nils Bergmann, Markus P, Rameez, Guest, Guest, Guest, Guest, Guest, Guest, Guest, Guest

Become a sponsor

We welcome financial contributions to help us maintain and improve this project. If you would like to become a financial contributor, please visit our Open Collective.

Frequently asked questions

Is fedify free to use?

fedify is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does fedify do?

ActivityPub server framework in TypeScript

What is fedify written in?

fedify is primarily written in TypeScript. Its source is publicly available at https://github.com/fedify-dev/fedify, and it has 1,030 GitHub stars.