Granthalay is a private, local-first EPUB library and reader built with SvelteKit and Svelte 5. Books are parsed and stored in the browser: there is no account, server-side library, or reading telemetry.
Quick links: Try it · Reader Wiki · Architecture · Contributing
- Imports
.epubfiles and extracts metadata, cover, spine, and table of contents in the browser. - Keeps uploaded books and reading position in IndexedDB; preferences use local storage.
- Saves device-local bookmarks and text highlights using repagination-safe semantic locations.
- Provides a library-wide annotations view for returning to saved passages across books.
- Provides list, compact-grid, and comfortable-grid library views.
- Switches between column pagination and a fit-to-screen presentation for illustrated books.
- Supports click/tap regions, swipes, arrow keys, and Space for page navigation.
- Includes dark mode and an installable PWA shell.
Granthalay is under active development. EPUB rendering can vary between publishers. See Compatibility and limitations before filing an issue.
Imported books are processed entirely in the browser and are not uploaded by Granthalay. Browser storage is origin-specific: clearing site data, changing the deployment URL, or using a different browser/profile produces a different library. Settings can export and restore a passphrase-encrypted, versioned local library archive without uploading its contents. Keep the original EPUB files, backup archives, and passphrases private.
The roadmap adds an optional bookstore without changing the reader's static-PWA foundation. The PWA remains deployable to GitHub Pages; a separately hosted modular backend provides accounts, catalog, purchases, entitlements, and book delivery. Anonymous local reading remains independent of that backend.
Use the engineering context when developing with people or AI agents, and the GitHub Wiki for reader guidance. Local setup, validation, and pull-request instructions live only in CONTRIBUTING.md.
Read CONTRIBUTING.md before opening a pull request. Report vulnerabilities privately as described in SECURITY.md. Community participation is governed by the Code of Conduct.
Granthalay is licensed under the MIT License.