{"id":13409107,"url":"https://github.com/nesaku/BiblioReads","last_synced_at":"2025-03-14T14:31:00.499Z","repository":{"id":63069903,"uuid":"549882928","full_name":"nesaku/BiblioReads","owner":"nesaku","description":"An Alternative Private Goodreads Front-End.","archived":false,"fork":false,"pushed_at":"2024-09-06T19:19:10.000Z","size":13936,"stargazers_count":159,"open_issues_count":1,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-09-06T22:54:34.217Z","etag":null,"topics":["alternative-frontends","goodreads","goodreads-api","libre","privacy","scraper"],"latest_commit_sha":null,"homepage":"https://biblioreads.eu.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nesaku.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-11T22:16:14.000Z","updated_at":"2024-09-06T19:19:13.000Z","dependencies_parsed_at":"2023-02-12T19:46:29.677Z","dependency_job_id":"2f3e09f2-dd3a-49a7-880b-67b2b9cfc9e6","html_url":"https://github.com/nesaku/BiblioReads","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesaku%2FBiblioReads","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesaku%2FBiblioReads/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesaku%2FBiblioReads/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nesaku%2FBiblioReads/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nesaku","download_url":"https://codeload.github.com/nesaku/BiblioReads/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243593288,"owners_count":20316160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alternative-frontends","goodreads","goodreads-api","libre","privacy","scraper"],"created_at":"2024-07-30T20:00:58.050Z","updated_at":"2025-03-14T14:31:00.486Z","avatar_url":"https://github.com/nesaku.png","language":"JavaScript","funding_links":[],"categories":["Alternative Web Front-ends","JavaScript","List"],"sub_categories":["Goodreads"],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"./public/readme/logo.svg?raw=true\" width=\"256\" height=\"256\" alt=\"\"\u003e\n\u003c/div\u003e\n\u003ch1 align=\"center\"\u003eBiblioReads\u003c/h1\u003e\n\u003cdiv align=\"center\"\u003e\nBiblioReads is a free and open source alternative Goodreads front-end focused on privacy.\n\nScrapes content from Goodreads and presents the results without any of the bloat.\n\nInspired by [Nitter](https://github.com/zedeus/nitter), [libremdb](https://github.com/zyachel/libremdb) and other open source alternative front-end projects.\n\n**[GitHub](https://github.com/nesaku/BiblioReads) | [Codeberg](https://codeberg.org/nesaku/BiblioReads)**\n\n\u003c/div\u003e\n\n---\n\n## Screenshots\n\n| Dark Mode                                   | Light Mode                                   |\n| ------------------------------------------- | -------------------------------------------- |\n| ![](/public/readme/books-dark.png?raw=true) | ![](/public/readme/books-light.png?raw=true) |\n\n#### View more [screenshots](#more-screenshots).\n\n---\n\n## Features\n\n- No ads - simple. We don't show ads.\n- No tracking or data collection - no personal information is ever collected. Tracking cookies are not used.\n- No sign-up required - use BiblioReads without signing up for an account and never deal with those annoying sign-up popups.\n- All requests are proxied - your requests are never directly made to Goodreads\n- Lightweight\n- Modern Design - responsive design with built-in light \u0026 dark mode support\n- PWA Support - installable as a PWA on desktop and mobile\n\n---\n\n## Instances\n\n| Instance URL                                                                                                                                  |        Country         | Provider        | Notes                                                       |\n| --------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------: | --------------- | ----------------------------------------------------------- |\n| [biblioreads.eu.org](https://biblioreads.eu.org)                                                                                              | :globe_with_meridians: | Cloudflare      | Run by [me](https://github.com/nesaku)                      |\n| [biblioreads.vercel.app](https://biblioreads.vercel.app)                                                                                      |          :us:          | Vercel          | Run by [me](https://github.com/nesaku)                      |\n| [biblioreads.mooo.com](https://biblioreads.mooo.com)                                                                                          | :globe_with_meridians: | Cloudflare      | Run by [me](https://github.com/nesaku)                      |\n| [bl.vern.cc](https://bl.vern.cc)                                                                                                              |          :us:          | Hetzner         | Run by [~vern](https://vern.cc)                             |\n| [biblioreads.lunar.icu](https://biblioreads.lunar.icu)                                                                                        | :globe_with_meridians: | Cloudflare      | Run by [Lunar.ICU](https://lunar.icu)                       |\n| [read.whateveritworks.org](https://read.whateveritworks.org)                                                                                  | :globe_with_meridians: | Cloudflare      | Run by [WhateverItWorks](https://www.whateveritworks.org)   |\n| [biblioreads.privacyfucking.rocks](https://biblioreads.privacyfucking.rocks)                                                                  |          :de:          | 1Blu.de         | Run by [PrivacyFucking.Rocks](https://privacyfucking.rocks) |\n| [read.seitan-ayoub.lol](https://read.seitan-ayoub.lol)                                                                                        |          :de:          | Hetzner         | Run by [unstablemaple](https://seitan-ayoub.lol)            |\n| [read.freedit.eu](https://read.freedit.eu)                                                                                                    |          :us:          | Cloudflare      | Run by [Freedit](https://freedit.eu)                        |\n| [biblioreads.ducks.party](https://biblioreads.ducks.party)                                                                                    |     :netherlands:      | Timeweb         | Run by [nyuuzyou](https://ducks.party)                      |\n| [biblioreads.snine.nl](https://biblioreads.snine.nl)                                                                                          | :globe_with_meridians: | Cloudflare      | Run by [snine.nl](https://snine.nl)                         |\n| [biblioreads.privacyredirect.com](https://biblioreads.privacyredirect.com)                                                                    |       :finland:        | Private WebHost | Run by [privacyredirect](https://privacyredirect.com)       |\n| [reads.nezumi.party](https://reads.nezumi.party)                                                                                              |          :it:          | Vodafone Italia | Run by [greyratdev](https://nezumi.party)                   |\n| [br.bloat.cat](https://br.bloat.cat)                                                                                                          |          :de:          | Datalix         | Run by [bloat.cat](https://bloat.cat)                       |\n| [read.canine.tools](https://read.canine.tools)                                                                                                |          :us:          | RoyaleHosting   | Run by [canine.tools](https://canine.tools)                 |\n| Onion:                                                                                                                                        |                        |                 |                                                             |\n| [bl.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion](http://bl.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion) |          :us:          | Hetzner         | Run by [~vern](https://vern.cc)                             |\n| I2P:                                                                                                                                          |                        |                 |                                                             |\n| [vernapl3lpo3huqdx3pjzxqgdgavxjlmdskbvejh2gfqgmjuyvxq.b32.i2p](http://vernapl3lpo3huqdx3pjzxqgdgavxjlmdskbvejh2gfqgmjuyvxq.b32.i2p)           |          :us:          | Hetzner         | Run by [~vern](https://vern.cc)                             |\n\n### Adding Your Instance\n\nIf you'd like to add your instance to the list, please open an issue or pull request using the `New Instance` template.\n\n**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`).\n\n---\n\n## Automatic Redirection\n\n### LibRedirect\n\nUse [LibRedirect](https://github.com/libredirect/libredirect) to automatically redirect Goodreads links to BiblioReads.\n\n### GreaseMonkey Userscript\n\nThere is a userscript to redirect Goodreads links to BiblioReads. The userscript can be found [here](https://codeberg.org/zortazert/GreaseMonkey-Redirect/src/branch/main/Goodreads_to_BiblioReads.user.js).\n\n### Redirector\n\nYou can use the [Redirector](https://github.com/einaregilsson/Redirector) extension to redirect Goodreads links to BiblioReads with the configuration below (_Note:_ You can replace `biblioreads.eu.org` with any instance URL):\n\n#### To Redirect All Supported Routes:\n\n- Description: Goodreads to BiblioReads Pages\n- Example URL: https://www.goodreads.com/book/show/5907.The_Hobbit\n- Include pattern: `^(?:https?://)www\\.goodreads\\.com/(book|work|author|series|quotes|list)(.*)`\n- Redirect to: `https://biblioreads.eu.org/$1$2`\n- Pattern type: Regular Expression\n- Pattern Description: Redirects all supported Goodreads URLs to BiblioReads\n- Advanced options:\n  - Apply to:\n    - [x] Main window (address bar)\n\n#### To Redirect Search Pages:\n\n##### Rule 1:\n\n- Description: Goodreads to BiblioReads Search Page - Rule 1\n- Example URL: https://www.goodreads.com/search?q=the+hobbit\u0026qid=\n- Include pattern: `^https:\\/\\/www\\.goodreads\\.com\\/search\\?q=(.*)$`\n- Redirect to: `https://biblioreads.eu.org/search/$1`\n- Pattern type: Regular Expression\n- Pattern Description: Redirects all Goodreads search page URLs to BiblioReads\n- Advanced options:\n  - Apply to:\n    - [x] Main window (address bar)\n\n##### Rule 2:\n\n- Description: Goodreads to BiblioReads Search Page - Rule 2\n- Example URL: https://www.goodreads.com/search?utf8=%E2%9C%93\u0026q=the+hobbit\u0026search_type=books\n- Include pattern: `^https:\\/\\/www\\.goodreads\\.com\\/search\\?utf8=%E2%9C%93\u0026q=(.*)$`\n- Redirect to: `https://biblioreads.eu.org/search/$1`\n- Pattern type: Regular Expression\n- Pattern Description: Redirects all Goodreads search page URLs to BiblioReads\n- Advanced options:\n  - Apply to:\n    - [x] Main window (address bar)\n\n---\n\n## FAQ\n\n### How Do I Use This?\n\nThere are two ways you can use BiblioReads:\n\n1. Visit [biblioreads.eu.org](https://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.\n2. 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](https://www.goodreads.com/book/show/5907.The_Hobbit) to [biblioreads.eu.org/book/show/5907.The_Hobbit](https://biblioreads.eu.org/book/show/5907.The_Hobbit).\n\n### How Does This Work? - Scraping\n\nSince Goodreads stopped issuing new developer keys for their [public developer API](https://www.goodreads.com/api) back in December of 2020 and plans to retire the current version of their API which you can learn more about [here](https://help.goodreads.com/s/article/Does-Goodreads-support-the-use-of-APIs). BiblioReads goes to the Goodreads book page and scrapes the required content.\n\n### How Did You Come Up With The Name?\n\nThe \"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.\n\n### What Do You Do With My Data?\n\nNothing. Since we don't collect any user data, we can't use any user data.\n\n### Why Is This Slower Than Goodreads?\n\nWhen 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.\n\n### Why Is This Missing Functionality?\n\nIf you have a certain feature that you would like to see, feel free to open an issue on [GitHub](https://github.com/nesaku/BiblioReads/issues) or [Codeberg](https://codeberg.org/nesaku/BiblioReads/issues).\n\n---\n\n## Comparison\n\nComparing BiblioReads to Goodreads\n\n### Speed\n\n[The Hunger Games](https://www.goodreads.com/book/show/2767052-the-hunger-games) Book Page\n_(Tested on Chrome v108, without scroll, no throttling, cache disabled)_\n\n|    Performance    | BiblioReads | Goodreads |\n| :---------------: | :---------: | :-------: |\n|   Request Count   |     45      |   +190    |\n| Data Transferred  |   137 kB    | +24.8 MB  |\n| DOMContentLoaded: |    191ms    |   1.79s   |\n|   Finish Time:    |    3.27s    |   9.26s   |\n\n### Privacy\n\nGoodreads collects information about your device and uses tracking cookies for advertising among other reasons, this can be found in their [privacy policy](https://www.goodreads.com/about/privacy). [Blacklight](https://themarkup.org/blacklight) found 16 ad trackers and 40 third-party cookies.\n\n- See what cookies and trackers Goodreads uses: https://themarkup.org/blacklight?url=www.goodreads.com\n- See what cookies and trackers BiblioReads uses: https://themarkup.org/blacklight?url=biblioreads.eu.org\n\n---\n\n## Installation:\n\n### Manual Installation\n\n**Prerequisites:**\n\n- [Node.js](https://nodejs.org/en/)\n- [Git](https://github.com/git-guides/install-git)\n\n1. Clone the Git Repository\n\n```bash\ngit clone https://github.com/nesaku/BiblioReads.git\ncd BiblioReads\n```\n\n2. Install \u0026 Start The Project\n\n```bash\nnpm install\nnpm run start\n# or\nyarn install\nyarn start\n```\n\n### Docker Installation\n\n##### Docker CLI:\n\n```docker\ndocker run -d \\\n  --name biblioreads \\\n  -p 3000:3000 \\\n  --restart unless-stopped \\\n  nesaku/biblioreads:latest\n```\n\n##### Docker-Compose:\n\n1. Download (or copy) `docker-compose.yml` from the repository\n2. Edit the default environment variables with your variables (Optional)\n3. Run the command `docker-compose up -d`\n\n#### More Information:\n\nVisit the [Docker Image Repo](https://github.com/nesaku/BiblioReads-Docker) for more information.\n\n---\n\n## Development\n\n### Built Using\n\n- Cheerio\n- DOMPurify\n- Next.js\n- Tailwind CSS\n- idb\n- next-pwa\n- next-themes\n\n### Getting Started\n\nTo run the development server:\n\n```bash\ngit clone https://github.com/nesaku/BiblioReads.git\ncd BiblioReads\n# then\nnpm install\nnpm run dev\n# or\nyarn install\nyarn dev\n```\n\n**ⓘ If you want to use the API directly or run any kind of automation. Please host the project on your own server.**\n\n---\n\n## More Screenshots:\n\n| Dark Mode                                    | Light Mode                                    |\n| -------------------------------------------- | --------------------------------------------- |\n| ![](/public/readme/author-dark.png?raw=true) | ![](/public/readme/author-light.png?raw=true) |\n| ![](/public/readme/search-dark.png?raw=true) | ![](/public/readme/search-light.png?raw=true) |\n| ![](/public/readme/quote-dark.png?raw=true)  | ![](/public/readme/quote-light.png?raw=true)  |\n| ![](/public/readme/home-dark.png?raw=true)   | ![](/public/readme/home-light.png?raw=true)   |\n\n---\n\n## License\n\nLicensed under the [GNU AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html). Please see [LICENSE.txt](./LICENSE.txt) for more information.\n\n---\n\n## Disclaimer\n\nBiblioReads 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnesaku%2FBiblioReads","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnesaku%2FBiblioReads","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnesaku%2FBiblioReads/lists"}