# BotKit by Fedify > Simple ActivityPub bot framework A framework for creating your fediverse bots ## Table of Contents ### Concepts - [Bot](/concepts/bot.md): The Bot object is the main component of the library. It is used to register event handlers, and provides the entry point of the bot. Learn how to instantiate a Bot object, customize it for your needs, and expose your bot to the fediverse. - [Session](/concepts/session.md): The Session object is a short-lived object that actively communicates with the fediverse. Learn how to create a session and publish messages to the fediverse. - [Events](/concepts/events.md): BotKit provides a way to handle events that are emitted from the fediverse. Learn how to handle events and what kinds of events are available. - [Message](/concepts/message.md): The Message object represents a message that is published to the fediverse. Learn what things you can do with the Message object. - [Text](/concepts/text.md): The Text object is a mini-language for representing rich text formatting commonly used in the fediverse. Learn how to format your text using the Text object. - [Repository](/concepts/repository.md): A repository is a data access object that provides an abstraction over the underlying data source. This document provides an overview of repositories and how they are used in the framework. ### Deploy - [Key–value store and message queue](/deploy/store-mq.md): Learn how to configure and manage key–value stores and message queues for your BotKit bot across different deployment environments. - [Deno Deploy](/deploy/deno-deploy.md): Learn how to deploy your BotKit bot to Deno Deploy, a serverless hosting platform for Deno applications. - [Docker](/deploy/docker.md): Learn how to deploy your BotKit bot using Docker containers on platforms like Fly.io and Railway. - [Self-hosted deployment](/deploy/self-hosting.md): Learn how to deploy your BotKit bot on your own server using the Deno runtime.