A one-page responsive web application to search, browse, and download public-domain books from Project Gutenberg, Open Library, and Internet Archive. Built with vanilla JavaScript, HTML5, and CSS3, this tool empowers readers, researchers, and developers to discover classic works in multiple languages—no backend required.
Try the live version on GitHub Pages:
https://bocaletto-luca.github.io/public-domain-book-library
- Search public-domain books by title, author, or general query
- Fetch results from three major APIs:
- Project Gutenberg (via Gutendex)
- Open Library
- Internet Archive
- Filter by language (English, Italian, Spanish, French, German, Latin, etc.)
- Responsive grid layout with paginated results
- Quick “Read / Download” links to EPUB, plain text, or online viewer
- SEO-friendly meta tags and Open Graph integration
- Zero external dependencies—pure HTML, CSS, and JavaScript
- HTML5 & CSS3 (Flexbox & CSS Grid)
- Vanilla JavaScript (ES6+)
- Public APIs:
- Gutendex (Project Gutenberg)
- Open Library Search API
- Internet Archive AdvancedSearch API
- GitHub Pages for static hosting
public-domain-book-library/
├── index.html # Single-page application
├── README.md # Project overview and setup instructions
└── LICENSE # MIT License
All you need is a modern web browser. No server, database, or build tools required.
- Clone the repository
git clone https://github.com/bocaletto-luca/public-domain-book-library.git
- Open
index.htmlin your favorite browsercd public-domain-book-library open index.html
Alternatively, deploy on GitHub Pages or any static-site host:
- Push your code to a GitHub repo named
public-domain-book-library. - In the repo’s Settings → Pages, select the
mainbranch and/ (root)folder. - Save and visit
https://<your-username>.github.io/public-domain-book-library.
- Select a data source: Project Gutenberg, Open Library, or Internet Archive.
- Choose your search field: Any Field, Title, or Author.
- Enter a keyword or phrase.
- (Optional) Filter by language.
- Click Search to load page 1 of results.
- Navigate with Previous and Next buttons.
- Click Read / Download to open or save the book.
Contributions are welcome! To propose changes:
- Fork this repository.
- Create a feature branch:
git checkout -b feature/YourFeature. - Commit your changes:
git commit -m "Add YourFeature". - Push to your fork:
git push origin feature/YourFeature. - Submit a Pull Request describing your work.
Please adhere to the existing code style and include clear commit messages.
This project is licensed under the MIT License. See LICENSE for details.
Bocaletto Luca
- GitHub: @bocaletto-luca
- Portfolio: https://bocaletto-luca.github.io
- Contact: bocaletto.luca@example.com
Feel free to reach out if you have questions or ideas. Happy reading!
