A modern, elegant ebook library manager built with React, TypeScript, and Electron. Organize, browse, and manage your digital book collection with ease.
Recommended for Windows users: Download the latest installer from Releases
Simply download LibroShelf-Setup-1.0.0.exe and install - no need to build from source!
Traditional file managers fall short when it comes to managing ebooks. LibroShelf solves these problems:
| Challenge | Windows Explorer | LibroShelf |
|---|---|---|
| Visual Browsing | Only shows filenames and generic icons | Beautiful cover thumbnails for every book |
| Scattered Collections | Books spread across multiple folders (Downloads, Documents, External Drives) | Unified library view - see all books in one place regardless of location |
| Organization | Rigid folder hierarchy - one book, one location | Flexible categories - assign multiple categories per book without moving files |
| Book Discovery | Difficult to find books by author or year | Smart search across title, author, publisher, and metadata |
| Reading Status | No tracking available | Track reading progress and recently opened books |
- Visual Library: Browse your collection with actual book covers, not just filenames
- Centralized Management: Books stored in different drives/folders? No problem - LibroShelf brings them all together in one unified interface
- Easy File Organization: Effortlessly move books to their corresponding category folders - a task that would be extremely tedious in File Explorer. Directly relocate original files to pre-created category folders with simple clicks
- Smart Metadata: Automatically fetch book information from Google Books API
- Batch Operations: Import entire folders, assign categories to multiple books at once
Perfect for organizing large ebook collections scattered across different folders and locations on your computer.
- Multi-Format Support: EPUB, PDF, AZW3, and MOBI formats
- Dual Mode: Works as both a web application and desktop app (Electron)
- Smart Cover Extraction: Automatically extracts book covers or generates beautiful gradient covers
- Category Management: Organize books with custom categories and virtual smart categories
- Automatic Metadata: Integration with Google Books API for automatic book metadata retrieval
- Advanced Search: Quick search across titles, authors, and descriptions
- Multi-Selection: Batch operations for category assignment and deletion
- Modern UI: Clean, responsive interface built with Tailwind CSS
- Bilingual Interface: Full support for English and Traditional Chinese
Browse your entire collection with beautiful cover thumbnails
Import entire folders of books in seconds - automatically detects covers and metadata
Organize books by assigning them to categories
Quickly find books by searching titles, authors, or metadata
All your books in one place, regardless of where they're stored
-
Install dependencies:
npm install
-
Start development server:
npm run dev
Open http://localhost:3000 in your browser.
-
Build for production:
npm run build npm run preview
-
Install dependencies:
npm install
-
Run Electron app:
npm run electron
-
Build distributable:
npm run electron:build
Find the installer in
dist-electron/folder.
- Single Book: Click the "Add Book" button and either upload a file or enter metadata manually
- Batch Import: Click the folder icon to import an entire directory of ebooks
- Auto-Categorization: Books imported from folders are automatically categorized based on parent directory names
- Create custom categories with icons
- Assign books to multiple categories
- Use virtual categories:
- All Books: View your entire collection
- Recently Read: Books you've opened recently
- Uncategorized: Books without assigned categories
Click the language toggle in the header to switch between English and Traditional Chinese.
- Frontend: React 19, TypeScript, Tailwind CSS
- Desktop: Electron
- Build Tools: Vite, electron-builder
- Ebook Processing: pdf.js, JSZip
- Data Storage: IndexedDB
- API Integration: Google Books API
- Internationalization: react-i18next
libroshelf/
βββ components/ # React components
βββ utils/ # Utility functions (db, parser, platform)
βββ services/ # API services (Google Books)
βββ src/locales/ # i18n translation files
βββ electron/ # Electron main process
βββ App.tsx # Main application
βββ types.ts # TypeScript type definitions
- Node.js 18+
- npm or yarn
- TypeScript with strict mode
- Functional React components with hooks
- Tailwind CSS for styling
- Path alias:
@/*maps to project root
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
We welcome translations to other languages! Translation files are located in src/locales/. To add a new language:
- Copy
src/locales/en.jsontosrc/locales/[language-code].json - Translate all strings in the new file
- Update
src/i18n.tsto include the new language - Submit a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.