// the find
bookwyrm-social/bookwyrm
Social reading and reviewing, decentralized with ActivityPub
BookWyrm is a federated, ActivityPub-based alternative to Goodreads: track reading, write reviews, and follow people across independently-run instances that can also interoperate with Mastodon and Pleroma. It's for people who want a small, self-moderated book community instead of a single corporate platform, and for devs interested in a real-world ActivityPub implementation beyond microblogging.
The federation layer is a genuine implementation, not a Mastodon-API shim — it extends ActivityPub with its own book/author/review vocabulary and documents the extensions in FEDERATION.md. It pulls book metadata from multiple external sources (OpenLibrary, Inventaire, Libris, Finna) instead of hardcoding one. The stack is conventional and boring in a good way: Django, Postgres, Celery, Gunicorn, Nginx, all wired up with a documented docker-compose production path. There's a real set of admin management commands for the ugly parts of running a book database — deduping authors, repairing editions, fixing bad ISBNs.
The migrations directory alone has 300+ files with a long tail of merge migrations — a sign of years of schema churn that makes the Django model history hard to read if you're trying to understand the data model from the code. Running it yourself means two separate Redis roles (Celery broker and activity-stream manager) plus Postgres, so the self-hosting footprint is bigger than a typical small Django app. Contributing AI-generated code is explicitly banned by project policy, which is a real constraint for anyone relying on LLM-assisted workflows. Onboarding docs are split across the README, FEDERATION.md, and an external docs site rather than living in one place in the repo.