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 provides the following features out of the box:
- Type-safe objects for Activity Vocabulary (including some vendor-specific extensions)
- WebFinger client and server
- HTTP Signatures
- Object Integrity Proofs
- Middlewares for handling webhooks
- NodeInfo protocol
- Special touch for interoperability with Mastodon and few other popular fediverse software
- CLI toolchain for testing and debugging
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!
Fedify is available on JSR for Deno and on npm for Node.js and Bun.
Tip
We recommend using Deno or Bun (which are TypeScript-first) for the best experience, but you can use Node.js if you prefer.
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/fedifySince Fedify requires Temporal API, which is an unstable feature in Deno as
of May 2024, you need to add the "temporal" to the "unstable" field of
the deno.json file:
{
"imports": {
"@fedify/fedify": "jsr:@fedify/fedify"
},
"unstable": ["temporal"]
}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/fedifyFedify is an ESM-only package, so you need to add "type": "module" to the
package.json file:
{
"type": "module",
"dependencies": {
"@fedify/fedify": "^0.12.0"
}
}Fedify can also be used in Bun. You can install it via the following command:
bun add @fedify/fedify