fedify is a free, open source social networking project written in TypeScript and released under MIT. It has 1,024 GitHub stars, 135 forks and 95 open issues, and was last pushed 13 hours ago. On this registry it ranks #33 of 44 tracked projects in Social Networking, with 5 head-to-head comparisons available.

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][jsr:@fedify/cli] [npm][npm:@fedify/cli] CLI toolchain for testing and debugging
@fedify/create [npm][npm:@fedify/create] Create a new Fedify project
@fedify/amqp [JSR][jsr:@fedify/amqp] [npm][npm:@fedify/amqp] AMQP/RabbitMQ driver
@fedify/astro [JSR][jsr:@fedify/astro] [npm][npm:@fedify/astro] Astro integration
@fedify/backfill [JSR][jsr:@fedify/backfill] [npm][npm:@fedify/backfill] ActivityPub backfill support
@fedify/cfworkers [JSR][jsr:@fedify/cfworkers] [npm][npm:@fedify/cfworkers] Cloudflare Workers integration
@fedify/debugger [JSR][jsr:@fedify/debugger] [npm][npm:@fedify/debugger] Embedded ActivityPub debug dashboard
@fedify/denokv [JSR][jsr:@fedify/denokv] Deno KV integration
@fedify/elysia [npm][npm:@fedify/elysia] Elysia integration
@fedify/express [JSR][jsr:@fedify/express] [npm][npm:@fedify/express] Express integration
@fedify/fastify [JSR][jsr:@fedify/fastify] [npm][npm:@fedify/fastify] Fastify integration
@fedify/fresh [JSR][jsr:@fedify/fresh] Fresh integration
@fedify/h3 [JSR][jsr:@fedify/h3] [npm][npm:@fedify/h3] H3 integration
@fedify/hono [JSR][jsr:@fedify/hono] [npm][npm:@fedify/hono] Hono integration
@fedify/init [JSR][jsr:@fedify/init] [npm][npm:@fedify/init] Project initializer for Fedify
@fedify/interaction-controls [JSR][jsr:@fedify/interaction-controls] [npm][npm:@fedify/interaction-controls] Interaction control helpers
@fedify/koa [JSR][jsr:@fedify/koa] [npm][npm:@fedify/koa] Koa integration
@fedify/lint [JSR][jsr:@fedify/lint] [npm][npm:@fedify/lint] Linting utilities
@fedify/nestjs [npm][npm:@fedify/nestjs] NestJS integration
@fedify/next [npm][npm:@fedify/next] Next.js integration
@fedify/nuxt [JSR][jsr:@fedify/nuxt] [npm][npm:@fedify/nuxt]

readme truncated — read the full docs on github

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,024 GitHub stars.