Note
Looking for a quick demo? Here it is: Fedify Demo on Deno Playground.
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 redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.
Currently, Fedify is moving fast and the API is not stable yet. We do not recommend using it in production yet, so please use it if you would like to experiment with it and help us improve it.
The rough roadmap is to implement the following features out of the box:
- Type-safe objects for Activity Vocabulary (including some vendor-specific extensions)
- WebFinger client and server
- HTTP Signatures
- Middlewares for handling webhooks
- ActivityPub client
- NodeInfo protocol
- Special touch for interoperability with Mastodon and few other popular fediverse software
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.
Fedify is available on JSR for Deno and on npm for Node.js and Bun. Although Fedify can be used in Node.js and Bun, it's primarily designed for Deno. We recommend using Deno for the best experience, but you can use Node.js or Bun if you prefer.
Tip
If you are new to Deno, but already familiar with Node.js, you can think of Deno as a more modern version of Node.js created by the same person, Ryan Dahl. Deno has a lot of improvements over Node.js, such as better security, better TypeScript support, better ES module support, and built-in key-value store and message queue.
Deno is the primary runtime for Fedify. As a prerequisite, you need to have Deno 1.41.0 or later installed on your system. Then you can install Fedify via the following command:
deno add @fedify/fedify
import { Federation } from "@fedify/fedify";
Or you can directly import it in your code using jsr:
specifier:
import { Federation } from "jsr:@fedify/fedify";
Fedify can also be used in Node.js. As a prerequisite, you need to have Node.js 20.0.0 or later installed on your system. Then you can install Fedify via the following command:
npm add @fedify/fedify
import { Federation } from "@fedify/fedify";
Fedify can also be used in Bun. You can install it via the following command:
bun add @fedify/fedify
import { Federation } from "@fedify/fedify";