BookWyrm
BookWyrm is a self-hosted fediverse & activitypub replacement for Bitly, Buffer, and more.
Open-source social reading, honestly reviewed. No marketing fluff, just what you get when you run your own book-tracking community.
TL;DR
- What it is: Open-source, federated social reading platform built on ActivityPub — think Goodreads, but decentralized, Amazon-free, and deployable on your own server [1][4].
- Who it’s for: Readers who want to escape Amazon’s Goodreads data silo, small book clubs wanting a private community, and anyone who cares about owning their reading history [1][4].
- Cost savings: Goodreads is “free” — but it’s owned by Amazon, the data is theirs, and the API was killed in 2020. BookWyrm self-hosted runs on a $5–10/mo VPS with full data ownership and no ads [2][4].
- Key strength: Federation via ActivityPub means your reading activity can cross instance boundaries — your friend on Mastodon can comment on your book review, and someone on a different BookWyrm instance is still in your social graph [1][4].
- Key weakness: The federation model is also the complexity. Running your own instance means you’re a server admin. The book database relies on OpenLibrary import rather than a curated first-party catalog, which creates gaps. And the license — the Anti-Capitalist Software License — is not OSI-approved, which matters if you’re embedding this in a commercial context.
What is BookWyrm
BookWyrm is a social reading platform you can run yourself or join as a member on an existing instance. It covers the Goodreads feature set — track reading status, write reviews, follow friends, post quotes, discover books through your network — without the Amazon affiliation or the algorithmic noise.
The project describes itself as “social reading and reviewing, decentralized with ActivityPub” [README]. ActivityPub is the same protocol that powers Mastodon and Pixelfed. The practical implication: BookWyrm instances don’t exist in isolation. An instance dedicated to science fiction can federate with one for literary fiction, and both can federate with Mastodon servers. Your friend who never touches BookWyrm but lives on Mastodon can still interact with your reading updates [1][4].
The technical stack is Django on the backend, PostgreSQL for storage, Celery for async jobs, Redis for both task queuing and activity stream management, and Docker Compose for deployment. The frontend uses Django templates with Bulma CSS — no React, no heavy client-side JavaScript [README]. It’s a relatively conservative stack, which is actually a feature for a community-run project: fewer things to break, more people who can contribute.
The project has 2,668 GitHub stars and is funded through Patreon — the lead developer has a day job outside tech, as one reviewer notes, “she’s a baker and isn’t trying to build an empire” [4]. That shapes what BookWyrm is: an earnest community project, not a startup with a growth roadmap.
Why people choose it
The migration from Goodreads to BookWyrm follows a recognizable arc in the sources: someone gets uncomfortable with the Amazon ownership, tries to find alternatives, lands on BookWyrm, and stays because the community is good and the feature set is honest about what it is.
The Goodreads problem is real. Goodreads killed its developer API in 2020, making data export painful and third-party integration impossible [4]. Amazon shows no signs of investing in the product — it has barely changed in a decade. One migration account puts it plainly: “I don’t want to give my data directly to Amazon. I don’t want to lose APIs or access to all the data that I’ve been putting in.” [4] BookWyrm’s pitch isn’t primarily feature superiority — it’s data sovereignty and community ownership.
The ActivityPub angle is the real differentiator. LibraryThing and StoryGraph are both Goodreads alternatives, but they’re still centralized services. You’re trading one vendor dependency for another. With BookWyrm, a user on bookwyrm.social can follow a user on a private book club instance, and both can be followed by Mastodon users — all without anyone asking permission or cutting a deal [1][4]. One reviewer explains it through an email analogy: “it’s as natural as sending emails from your work to someone else’s” [4].
The anti-corporate positioning is genuine, not marketing. The homepage lists three values: “Decentralized, Friendly, Anti-Corporate.” That last one isn’t just branding — BookWyrm uses the Anti-Capitalist Software License, which explicitly restricts use by “capitalist entities.” This is ideologically coherent but practically unusual, and worth understanding before you build anything commercial on top of it.
Community quality. Multiple reviewers mention the community as a specific draw. The Fediverse in general attracts users who opted out of algorithmic social media, and BookWyrm’s book focus self-selects further. One reviewer notes: “the recommendations I see come from people, not algorithms” — which is literally just the product working as designed, but feels different in practice [1].
Features
Based on the README and first-hand accounts:
Reading tracking:
- Reading status (want to read, reading, read) with date tracking [README]
- Annual reading goal tracking [website]
- Progress updates and status posts as you read [README]
- Import from Goodreads and other services via CSV [README]
Social layer:
- Reviews, comments, quotes — all postable with granular privacy controls [README][website]
- Follow users across instances (same-instance and federated) [README]
- Timeline of what friends are reading [website]
- Interaction with Mastodon users on your reading posts [4]
Book database:
- Pulls from OpenLibrary, an open collaborative database [2]
- Federated book metadata — instances share and build on each other’s book data [README]
- ISBN barcode scanning via unofficial Android app [2]
Instance administration:
- Per-instance moderation: block users, block federated instances, review content [README]
- Instance-level decisions about what external services to federate with [1][4]
Deployment:
- Docker Compose standard setup with Nginx and Gunicorn [README][3]
- S3-compatible storage for assets (images, static files) [3]
- Celery task monitoring via Flower [README]
- Supports Let’s Encrypt for SSL [3]
What it doesn’t do: It’s not a book catalog in the LibraryThing sense. It’s not an ebook reader. It’s not a library management system for physical books — a YunoHost forum thread confirms this gap, with users looking for BookWyrm to handle physical lending tracking finding it doesn’t quite fit that use case [5].
Pricing: self-hosted math
BookWyrm doesn’t have SaaS pricing tiers in the traditional sense. The options are:
Join a public instance (free): The main instance is bookwyrm.social. There are others listed at joinbookwyrm.com/instances. You create an account, pay nothing, and rely on whoever runs that instance to keep it up. The risk is exactly what it is with any volunteer-run community server: if the operator burns out or runs out of money, the instance goes down.
Self-host your own instance:
- Software: $0
- VPS to run it: $5–10/mo on Hetzner, Contabo, or DigitalOcean
- S3-compatible storage for assets: $1–5/mo (Cloudflare R2, Backblaze B2, or similar)
- Domain: ~$10/yr
- Your time to set up and maintain
Goodreads for comparison: Free, but Amazon owns your data, the API is dead, and you’re the product. Data portability is deliberately limited [4].
StoryGraph for comparison: Free with a premium tier around $2.99/mo for advanced statistics and mood-based recommendations. Closed source, centralized, not self-hostable — but a polished product with active development.
The honest math: if you’re a solo reader, joining a public BookWyrm instance is free and costs nothing. If you want full control, self-hosting runs ~$10–15/mo in infrastructure. That’s not a comparison against a $100/mo Zapier bill — it’s a comparison against a free but Amazon-owned alternative. The value proposition here is data sovereignty and community, not cost reduction.
Deployment reality check
The standard deployment path is Docker Compose, which the documentation covers in detail. One operator who went off the Docker path and deployed via systemd and Ansible wrote up the experience in detail [3] — it’s a useful read because it exposes the real complexity of what’s running.
What you actually need:
- Linux VPS with 2+ GB RAM (Redis runs two logical databases; under load you’ll want headroom)
- Docker and docker-compose
- A domain and a reverse proxy (Nginx is bundled in the Docker Compose setup)
- PostgreSQL (bundled or external)
- Redis (two logical databases — one for cache/feed, one for Celery job queue) [3]
- S3-compatible bucket for static assets and user-uploaded images [3]
- SMTP provider for email notifications
What can go sideways:
- The systemd operator notes that the default Docker Compose setup runs all three BookWyrm services (web, background jobs, scheduler) as a single logical unit, which makes it harder to restart them independently [3]. Not a dealbreaker, but worth knowing if you like granular control.
- Book metadata quality depends on OpenLibrary, which has gaps for non-English books and obscure editions. If your reading skews toward well-catalogued English fiction you won’t notice; if you read extensively in other languages or niche categories, you’ll hit missing entries [2].
- Federation can mean your instance receives spam or unwanted content from bad actors on other instances. Instance moderation is your responsibility — you’re not behind a corporate trust-and-safety team [1].
- The unofficial Android app supports barcode scanning for adding books [2], but it’s unofficial — updates and maintenance depend on a volunteer maintainer.
Realistic setup time for someone who’s deployed a Django app before: 1–3 hours for a working instance. For someone new to Linux server administration following the official guide: half a day to a full day, including DNS propagation, SSL setup, and email configuration. If you’ve never touched a VPS, have someone do the initial setup or choose a public instance instead.
Pros and cons
Pros
- True data ownership. Your reading history, reviews, and social graph live on a server you control. No API deprecation, no policy changes, no acquisition risk [1][4].
- Federation that actually works. ActivityPub interoperability with Mastodon and other instances is functional, not theoretical. Reviewers specifically mention Mastodon friends commenting on their BookWyrm posts [4].
- Anti-algorithmic by design. Discovery happens through people you chose to follow, not through engagement optimization. Reviewers who’ve spent time on GoodReads note this as a qualitative difference in how the feed feels [1].
- Community-run moderation. Instance operators set federation policies and content standards. You can join a high-trust small community or run one yourself [1][4].
- Conservative, maintainable stack. Django + Postgres + Redis + Celery is boring in the best way. Most backend developers can read and contribute to it. No frontend build pipeline required for basic use.
- Goodreads import. You can bring your reading history over [README]. Not instant, but it works.
Cons
- License complexity. The Anti-Capitalist Software License is not OSI-approved. If you’re a business deploying this internally or building commercial features on top, get legal clarity before proceeding.
- Book database quality is uneven. Relies on OpenLibrary rather than a first-party catalog. Coverage gaps for non-English titles and obscure editions [2].
- No official mobile app. The unofficial Android app handles barcode scanning [2], but “unofficial” means no guaranteed support, updates, or iOS coverage.
- You are the sysadmin. Self-hosting means handling updates, backups, database maintenance, and storage. The Docker Compose setup makes this manageable but not invisible [3].
- Small project, volunteer-paced development. The lead developer works on this alongside a day job [4]. Features ship slowly. If you need something added, you’re contributing code or waiting.
- Federation increases attack surface. Federated instances can send you spam, CSAM reports, or coordinated harassment. Moderation tooling exists but requires active use [1].
- Not a library manager. Users looking for barcode-scan-to-inventory for physical book lending will find BookWyrm isn’t the right tool [5].
Who should use this / who shouldn’t
Use BookWyrm if:
- You’re a Goodreads user who hates that Amazon owns your reading data and killed the API.
- You want to run a private reading community for a book club, friend group, or niche reading interest.
- You’re already in the Fediverse and want your reading activity connected to your Mastodon presence.
- You’re comfortable with basic server administration or willing to learn.
- You value community-moderated small spaces over algorithmic discovery.
Use a public BookWyrm instance if:
- You want all the above but don’t want to run the infrastructure yourself. Join bookwyrm.social or another listed instance and contribute to the project’s Patreon.
Skip it (use StoryGraph) if:
- You want a polished, actively-developed Goodreads alternative without the server administration. StoryGraph is the strongest closed-source option — good mobile apps, active feature development, mood-based recommendations. You give up data ownership but gain a product team behind it.
Skip it (stay on Goodreads) if:
- Your entire reading social graph is on Goodreads and none of them will move. The federation advantage disappears if you’re the only person on BookWyrm.
- You’re not comfortable with the idea of moderation being your problem.
Skip it (use LibraryThing) if:
- You need deep cataloguing features, physical book inventory management, or comprehensive metadata for rare editions.
Alternatives worth considering
- StoryGraph — the strongest Goodreads alternative for users who don’t want to self-host. Mood-based recommendations, active development, good mobile apps. Centralized, closed source. No self-hosting option.
- LibraryThing — older, more cataloguing-focused than social. Good for serious collectors and librarians. Has some social features but they’re not the core product.
- Inventaire.io — similar ActivityPub-based book platform, focused more on book sharing and collective ownership than reading tracking. Mentioned as a complement to BookWyrm in community discussions [5]. Not self-hostable in a straightforward way.
- Mastodon + manual posts — technically an alternative for people who just want to discuss books in the Fediverse without a dedicated tracker. Missing all the structured reading data features.
- Calibre-Web — handles ebook management and reading, not social reading tracking. Different problem.
Bottom line
BookWyrm is a sincere project that does what it says. If your problem is that Goodreads is owned by Amazon, the API is gone, and you don’t trust the platform to still exist in ten years with your data intact — BookWyrm solves that problem. The federation angle is genuinely useful, not a differentiating feature bolted on for marketing: ActivityPub makes cross-instance social reading work, and Mastodon interoperability means your reading activity connects to a broader community without everyone being on the same server.
The honest caveats: this is volunteer-built software with volunteer-paced development, the book catalog is only as good as OpenLibrary, there’s no official mobile app, and the Anti-Capitalist Software License means you need to read it before building anything commercial on top. If you want a polished product with a support team, StoryGraph is the answer. If you want your data on your server and your community run by people you know, BookWyrm is the answer.
If running your own instance is the blocker, that’s exactly what upready.dev deploys for you — one-time setup, you own the infrastructure.
Sources
- Quinn Maclay, Books Are Our Superpower — “Why I Use BookWyrm: A Federated Goodreads Alternative” (Dec 12, 2025). https://baos.pub/why-i-use-bookwyrm-a-federated-goodreads-alternative-fed4b8575b45
- Reddit r/books — “Bookwyrm - A federated and open source book tracking service and social network” (user: Jatin_Nagpal). https://www.reddit.com/r/books/comments/15hwcds/bookwyrm_a_federated_and_open_source_book/
- amble.blog — “An Opinionated Guide to Operating a BookWyrm Instance” (chdorner). https://amble.blog/articles/1de238f3-b0a2-4734-aced-cafcc787bba9
- Matt Katz, More Light! More Light! — “Moving on from GoodReads to BookWyrm” (Nov 8, 2023). https://www.morelightmorelight.com/2023/11/08/moving-on-from-goodreads-to-bookwyrm/
- YunoHost Forum — “Library manager” discussion thread (Nov 2021). https://forum.yunohost.org/t/library-manager/17933
Primary sources:
- GitHub repository and README: https://github.com/bookwyrm-social/bookwyrm (2,668 stars)
- Official website: https://joinbookwyrm.com
- Documentation: https://docs.joinbookwyrm.com
Replaces
Related Social & Community Tools
View all 119 →Mastodon
50KDecentralized social network where you own your audience. No algorithm, no ads, no corporate control. Part of the Fediverse via ActivityPub.
Mastodon
50KDecentralized social network where you own your audience. No algorithm, no ads, no corporate control. Part of the Fediverse via ActivityPub.
Discourse
47KThe most popular open-source forum platform, powering 22,000+ communities. Built for long-form discussion, knowledge sharing, and community building.
RSSHub
43KRSSHub generates RSS feeds from virtually any website or platform, turning social media, news sites, forums, and services without native RSS into subscribable feeds.
Glance
33KA self-hosted dashboard that puts all your feeds in one place.
Forem
23KReleased under AGPL-3.0, Forem provides platform for building communities on self-hosted infrastructure.