Skip to content

nesaku/BiblioReads

Repository files navigation

BiblioReads

BiblioReads is a free and open source alternative Goodreads front-end focused on privacy.

Scrapes content from Goodreads and presents the results without any of the bloat.

Inspired by Nitter, libremdb and other open source alternative front-end projects.

GitHub | Codeberg


Screenshots

Dark Mode Light Mode

View more screenshots.


Features

  • No ads - simple. We don't show ads.
  • No tracking or data collection - no personal information is ever collected. Tracking cookies are not used.
  • No sign-up required - use BiblioReads without signing up for an account and never deal with those annoying sign-up popups.
  • All requests are proxied - your requests are never directly made to Goodreads
  • Lightweight
  • Modern Design - responsive design with built-in light & dark mode support
  • PWA Support - installable as a PWA on desktop and mobile

Instances

Instance URL Country Provider Notes
biblioreads.eu.org 🌐 Cloudflare Run by me
biblioreads.vercel.app 🇺🇸 Vercel Run by me
biblioreads.mooo.com 🌐 Cloudflare Run by me
bl.vern.cc 🇺🇸 Hetzner Run by ~vern
biblioreads.lunar.icu 🌐 Cloudflare Run by Lunar.ICU
read.whateveritworks.org 🌐 Cloudflare Run by WhateverItWorks
biblioreads.privacyfucking.rocks 🇩🇪 1Blu.de Run by PrivacyFucking.Rocks
read.seitan-ayoub.lol 🇩🇪 Hetzner Run by unstablemaple
read.freedit.eu 🇺🇸 Cloudflare Run by Freedit
biblioreads.ducks.party 🇳🇱 Timeweb Run by nyuuzyou
biblioreads.snine.nl 🌐 Cloudflare Run by snine.nl
biblioreads.privacyredirect.com 🇫🇮 Private WebHost Run by privacyredirect
reads.nezumi.party 🇮🇹 Vodafone Italia Run by greyratdev
br.bloat.cat 🇩🇪 Datalix Run by bloat.cat
read.canine.tools 🇺🇸 RoyaleHosting Run by canine.tools
Onion:
bl.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion 🇺🇸 Hetzner Run by ~vern
I2P:
vernapl3lpo3huqdx3pjzxqgdgavxjlmdskbvejh2gfqgmjuyvxq.b32.i2p 🇺🇸 Hetzner Run by ~vern

This list is available in JSON format here.


Adding Your Instance

If you'd like to add your instance to the list, please open an issue or pull request using the New Instance template.

Note: If you collect any user data from your instance please set the applicable environment variables (an example can be found in .env.local.example).


Automatic Redirection

LibRedirect

Use LibRedirect to automatically redirect Goodreads links to BiblioReads.

GreaseMonkey Userscript

There is a userscript to redirect Goodreads links to BiblioReads. The userscript can be found here.

Redirector

You can use the Redirector extension to redirect Goodreads links to BiblioReads with the configuration below (Note: You can replace biblioreads.eu.org with any instance URL):

To Redirect All Supported Routes:

  • Description: Goodreads to BiblioReads Pages
  • Example URL: https://www.goodreads.com/book/show/5907.The_Hobbit
  • Include pattern: ^(?:https?://)www\.goodreads\.com/(book|work|author|series|quotes|list)(.*)
  • Redirect to: https://biblioreads.eu.org/$1$2
  • Pattern type: Regular Expression
  • Pattern Description: Redirects all supported Goodreads URLs to BiblioReads
  • Advanced options:
    • Apply to:
      • Main window (address bar)

To Redirect Search Pages:

Rule 1:
  • Description: Goodreads to BiblioReads Search Page - Rule 1
  • Example URL: https://www.goodreads.com/search?q=the hobbit&qid=
  • Include pattern: ^https:\/\/www\.goodreads\.com\/search\?q=(.*)$
  • Redirect to: https://biblioreads.eu.org/search/$1
  • Pattern type: Regular Expression
  • Pattern Description: Redirects all Goodreads search page URLs to BiblioReads
  • Advanced options:
    • Apply to:
      • Main window (address bar)
Rule 2:
  • Description: Goodreads to BiblioReads Search Page - Rule 2
  • Example URL: https://www.goodreads.com/search?utf8=✓&q=the hobbit&search_type=books
  • Include pattern: ^https:\/\/www\.goodreads\.com\/search\?utf8=✓&q=(.*)$
  • Redirect to: https://biblioreads.eu.org/search/$1
  • Pattern type: Regular Expression
  • Pattern Description: Redirects all Goodreads search page URLs to BiblioReads
  • Advanced options:
    • Apply to:
      • Main window (address bar)

FAQ

How Do I Use This?

There are two ways you can use BiblioReads:

  1. Visit biblioreads.eu.org (or another instance) and paste the Goodreads book URL into the input box or search for a book using the input box.
  2. Replace the https://www.goodreads.com of any book page URL with https://biblioreads.eu.org (or another instance URL). For example: www.goodreads.com/book/show/5907.The_Hobbit to biblioreads.eu.org/book/show/5907.The_Hobbit.

How Does This Work? - Scraping

Since Goodreads stopped issuing new developer keys for their public developer API back in December of 2020 and plans to retire the current version of their API which you can learn more about here. BiblioReads goes to the Goodreads book page and scrapes the required content.

How Did You Come Up With The Name?

The "Biblio" in BiblioReads comes from the prefix biblio- meaning book and "Reads" comes from the ending of Goodreads which is what this website is an alternative front-end for.

What Do You Do With My Data?

Nothing. Since we don't collect any user data, we can't use any user data.

Why Is This Slower Than Goodreads?

When you make a request for a book on BiblioReads, your request needs to be first scraped by the scraper from Goodreads before the result can be shown to you. This causes a delay from when you make the request to when the result is shown.

Why Is This Missing Functionality?

If you have a certain feature that you would like to see, feel free to open an issue on GitHub or Codeberg.


Comparison

Comparing BiblioReads to Goodreads

Speed

The Hunger Games Book Page (Tested on Chrome v108, without scroll, no throttling, cache disabled)

Performance BiblioReads Goodreads
Request Count 45 190
Data Transferred 137 kB 24.8 MB
DOMContentLoaded: 191ms 1.79s
Finish Time: 3.27s 9.26s

Privacy

Goodreads collects information about your device and uses tracking cookies for advertising among other reasons, this can be found in their privacy policy. Blacklight found 16 ad trackers and 40 third-party cookies.


Installation:

Manual Installation

Prerequisites:

  1. Clone the Git Repository
git clone https://github.com/nesaku/BiblioReads.git
cd BiblioReads
  1. Install & Start The Project
npm install
npm run start
# or
yarn install
yarn start

Docker Installation

Docker CLI:
docker run -d \
  --name biblioreads \
  -p 3000:3000 \
  --restart unless-stopped \
  -e NEXT_PUBLIC_HOST_URL=http://biblioreads.local \
  -e NEXT_TELEMETRY_DISABLED=1 \
  nesaku/biblioreads:latest
Docker-Compose:
  1. Download (or copy) docker-compose.yml from here.
  2. Edit or add environment variables to the docker-compose.yml
    • A full list of environment variables can be found here
  3. Run the command docker-compose up -d to start the container

More Information:

Visit the Docker Image Repo for more information.


Development

Built Using

  • Cheerio
  • DOMPurify
  • Next.js
  • Tailwind CSS
  • idb
  • next-pwa
  • next-themes

Getting Started

To run the development server:

git clone https://github.com/nesaku/BiblioReads.git
cd BiblioReads
# then
npm install
npm run dev
# or
yarn install
yarn dev

ⓘ If you want to use the API directly or run any kind of automation. Please host the project on your own server.


More Screenshots:

Dark Mode Light Mode

License

Licensed under the GNU AGPLv3. Please see LICENSE.txt for more information.


Disclaimer

BiblioReads does not host any content. All content on BiblioReads is sourced from Goodreads. BiblioReads is not affiliated with Goodreads. Goodreads is a trademark of Amazon Technologies, Inc.