BookWyrm is a free, open source media & streaming project written in Python and released under a custom open-source licence. It has 2,779 GitHub stars, 336 forks and 418 open issues, and was last pushed 9 hours ago. On this registry it ranks #13 of 27 tracked projects in Media & Streaming, with 5 head-to-head comparisons available.

What is BookWyrm?

What it is

BookWyrm is a social reading network for tracking books, writing reviews, and discovering what to read next. It lives in the ActivityPub ecosystem, so users can interact with other BookWyrm instances and with ActivityPub services such as Mastodon and Pleroma. The project is a Python web application using Django, PostgreSQL, Redis, Celery, and ActivityPub.

The concrete problem it solves is connecting small, trusted reading communities while still allowing interaction with the wider network. Users can run or join instances for a book club, a group of friends, or a shared interest, and each community can choose which other instances it federates with. BookWyrm also shares book and author metadata across instances, which helps build a decentralized database of books.

Key capabilities

  • Users can post book reviews, comments on what they are reading, and quotes from books.
  • Users can track books they have read and books they want to read in the future.
  • ActivityPub federation lets users interact with accounts on other BookWyrm instances and with other ActivityPub compliant services.
  • Instances can choose which other instances they federate with, supporting community-level moderation and control.
  • Users and administrators can control who sees posts and what other instances can interact with the community.
  • Book and author metadata can be shared across the network, contributing to a decentralized database of books.
  • The front end uses Django templates, Bulma CSS, and vanilla JavaScript.

Who uses it and how

  • A book club can run a small, focused BookWyrm instance and still follow readers on other ActivityPub services.
  • A reader can post a review on a BookWyrm instance and have Mastodon users read and comment on it.
  • A community can choose which other instances to federate with, shaping the network around trust, interest, or moderation preferences.
  • A self-hoster can deploy BookWyrm with Docker and docker-compose, using Gunicorn, Nginx, PostgreSQL, Redis, Celery, and Flower.
  • Developers can study BookWyrm's ActivityPub implementation through the project documentation and FEDERATION.md.

Getting started

The documentation website provides setup instructions, and the README points to Docker and docker-compose as the deployment path. The typical stack includes Django, PostgreSQL, Redis, Celery, Gunicorn, Nginx, and Flower.

When to use it — and when not to

BookWyrm fits readers who want a social reading network with federation and community control, rather than a single monolithic service. It is less suitable when the main goal is book cataloguing or using the project as a standalone book data source, because the README says it is not primarily meant for those uses. A self-hoster must operate the database, task queue, task backend, activity stream manager, web runner, HTTP server, and monitoring components listed in the tech stack.

project readme (upstream, from github) — read inline

BookWyrm

Ruff

Welcome to the codebase!

BookWyrm is a social network for tracking your reading, talking about books, writing reviews, and discovering what to read next. Federation allows BookWyrm users to join small, trusted communities that can connect with one another, and with other ActivityPub services like Mastodon and Pleroma.

👋 Meaningful human interaction is the whole point: please feel welcome to participate regardless of your experience level with programming. We would love to help! By the same token, please do not submit any AI-generated code or content.

Links

Mastodon Follow

About BookWyrm

BookWyrm is a platform for social reading. You can use it to track what you're reading, review books, and follow your friends. It isn't primarily meant for cataloguing or as a data-source for books, but it does do both of those things to some degree.

Federation

BookWyrm is built on ActivityPub. With ActivityPub, it inter-operates with different instances of BookWyrm, and other ActivityPub compliant services, like Mastodon. This means you can run an instance for your book club, and still follow your friend who posts on a server devoted to 20th century Russian speculative fiction. It also means that your friend on mastodon can read and comment on a book review that you post on your BookWyrm instance.

Federation makes it possible to have small, self-determining communities, in contrast to the monolithic service you find on GoodReads or Twitter. An instance can be focused on a particular interest, be just for a group of friends, or anything else that brings people together. Each community can choose which other instances they want to federate with, and moderate and run their community autonomously. Check out runyourown.social to get a sense of the philosophy and logistics behind small, high-trust social networks.

Developers of other ActivityPub software can find out more about BookWyrm's implementation at FEDERATION.md.

Features

Post about books

Compose reviews, comment on what you're reading, and post quotes from books. You can converse with other BookWyrm users across the network about what they're reading.

Track reading activity

Keep track of what books you've read, and what books you'd like to read in the future.

Federation with ActivityPub

Federation allows you to interact with users on other instances and services, and also shares metadata about books and authors, which collaboratively builds a decentralized database of books.

Privacy and moderation

Users and administrators can control who can see their posts and what other instances to federate with.

Tech Stack

Web backend
Front end
  • Django templates
  • Bulma.io CSS framework
  • Vanilla JavaScript, in moderation
Deployment

Set up BookWyrm

The documentation website has instruction on how to set up BookWyrm in a developer environment or production.

Contributing

There are many ways you can contribute to the success and health of the BookWyrm project! You do not have to know how to write code and we are always keen to see more people get involved. Find out how you can join the project at CONTRIBUTING.md.

Frequently asked questions

Is BookWyrm free to use?

BookWyrm is open source. 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 BookWyrm do?

Decentralized social network for book lovers and readers

What is BookWyrm written in?

BookWyrm is primarily written in Python. Its source is publicly available at https://github.com/bookwyrm-social/bookwyrm, and it has 2,779 GitHub stars.