# Fedify > ActivityPub server framework A TypeScript library for building federated server apps powered by ActivityPub and other standards, so-called fediverse ## Table of Contents ### Tutorials - [Learning the basics of Fedify](/tutorial/basics.md): This tutorial provides a step-by-step guide to building a small federated server with the Fedify framework. It is intended for developers who want to build a federated server with the Fedify framework. - [Creating your own federated microblog](/tutorial/microblog.md): In this tutorial, we will build a small microblog that implements the ActivityPub protocol, similar to Mastodon or Misskey, using Fedify, an ActivityPub server framework. ### Manual - [Federation](/manual/federation.md): The Federation object is the main entry point of the Fedify library. This section explains the key features of the Federation object. - [Context](/manual/context.md): The Context object is a container that holds the information of the current request. This section explains the key features of the Context object. - [Vocabulary](/manual/vocab.md): The Activity Vocabulary is a collection of type-safe objects that represent the Activity Vocabulary and the vendor-specific extensions. This section explains the key features of the objects. - [Actor dispatcher](/manual/actor.md): You can register an actor dispatcher so that Fedify can dispatch an appropriate actor by its identifier. This section explains how to register an actor dispatcher and the key properties of an actor. - [Inbox listeners](/manual/inbox.md): Fedify provides a way to register inbox listeners so that you can handle incoming activities from other actors. This section explains how to register an inbox listener and how to handle errors. - [Sending activities](/manual/send.md): Fedify provides a way to send activities to other actors' inboxes. This section explains how to send activities to others. - [Collections](/manual/collections.md): Fedify provides a generic way to construct and handle collections. This section explains how to work with collections in Fedify. - [Object dispatcher](/manual/object.md): You can register an object dispatcher so that Fedify can dispatch an appropriate object by its class and URL arguments. This section explains how to register an object dispatcher. - [Access control](/manual/access-control.md): Fedify provides a flexible access control system that allows you to control who can access your resources. This section explains how to use the access control system. - [NodeInfo](/manual/nodeinfo.md): According to the official NodeInfo website, NodeInfo is an effort to create a standardized way of exposing metadata about a server running one of the distributed social networks. This section explains how to expose a NodeInfo endpoint and the key properties of a NodeInfo object. - [Pragmatics](/manual/pragmatics.md): This section explains the pragmatic aspects of using Fedify, such as how to utilize the vocabulary API and the de facto norms of ActivityPub implementations. - [Key–value store](/manual/kv.md) - [Message queue](/manual/mq.md) - [Integration](/manual/integration.md): Fedify is designed to be used together with web frameworks. This document explains how to integrate Fedify with web frameworks. - [Testing](/manual/test.md): Testing a federated server app is a bit tricky because it requires a federated environment. This document explains how to easily test your federated server app with the help of several tools. - [Logging](/manual/log.md): Logging is a useful tool for debugging your federated server app. This section explains how to enable logging in your federated server app. - [OpenTelemetry](/manual/opentelemetry.md): OpenTelemetry is a set of APIs, libraries, agents, and instrumentation to provide observability to your applications. Fedify supports OpenTelemetry for tracing. This document explains how to use OpenTelemetry with Fedify. - [Deployment](/manual/deploy.md): This document explains how to deploy Fedify applications to various platforms and runtime environments, with specific guidance for serverless platforms that have unique architectural constraints.