If you have ever tried to use a general-purpose media server to organize a growing collection of books, you know it's frustrating. Most self-hosted apps like Plex try to handle video, music, and podcasts all at once, which is only great if they put the same effort into the digital reading material. Unfortunately, not many act like libraries just for books, and anything readable tends to feel like an afterthought. Luckily, there is an app that is dedicated to your reading experience.

Kobo Clara Colour outside in a hand
This is the better Kindle alternative that most people don't consider

Kobo beats Kindle on library books, format flexibility, and physical buttons

4

Grimmory is what you've been waiting for

Stop settling for a bookshelf slapped onto a major service

Cover of Frankenstein Book
Jorge Aguilar / MakeUseOf

There are plenty of self-hosted media servers out there, but most of them try to handle everything at once. The biggest issue is that books are normally not a priority for these apps, so you're stuck going through menus to find the one thing you downloaded the app for. You can ditch the Plex subscription for a free app named Grimmory.

Grimmory is an independent, community-driven fork of the Booklore project. Unlike something like Audiobookshelf, Grimmory has no interest in becoming a general-purpose media server. There's no video streaming or feature bloat. This is an app dedicated to books.

If you want videos and all that, you should just focus on getting Plex or Jellyfish, because you don't want a laggy or less-than-premium experience for your books.

Since this doesn't have a heavy video transcoding engine running in the background, the platform can dedicate its resources entirely to handling a wide range of reading formats. That means you have ebooks (EPUB, MOBI, AZW, AZW3, FB2, PDF), comic archives (CBZ, CBR, CB7), and audiobooks (M4B, M4A, MP3, OPUS).

BookDrop keeps the library organized. This is a watched folder on your file system that automates the entire import process. Drop a file in, and Grimmory picks it up automatically, checks it over, and pulls in metadata from sources like Google Books, Open Library, Amazon, and Goodreads. So you'll get your cover art, synopsis, genres, ratings, and everything else you'd expect. Luckily, before anything lands permanently in your library, it's queued for your review, so you stay in control of what goes in and how it's labeled.

Organize your library more easily

Grimmory actually thought this through

Once your collection is imported, organizing it further is handled by Magic Shelves. This is basically a smart, rule-based system that automatically builds and updates collections based on criteria you define. Set your rules once, and whenever a new file lands in your library, the relevant shelves update on their own.

The logic you can build is flexible. So you can separate books by read status, filter lossless audio from heavily compressed files by bitrate, or pull together all your unread sci-fi while excluding specific sub-genres you're not into.

Once your library is in order, Grimmory gives you access through a built-in browser reader, so you don't have to download or configure anything. EPUBs, MOBIs, and AZW files look clean with proper CSS, adjustable margins, and font scaling that holds up on both desktop and mobile.

PDFs are handled through PDFium, which serves documents in optimized layers and scrolls smoothly even with large files, avoiding the memory issues you'd normally run into. Comics and manga work just as well. All the CBZ, CBR, and CB7 archives are decompressed and cached on the fly, keeping things fast without eating through your memory.

For Kobo users, Grimmory syncs wirelessly and automatically converts standard EPUBs into Kobo's native KEPUB format, resulting in faster page turns and more accurate reading stats. It also supports KOReader's sync API and publishes an OPDS catalog, so apps like Moon+ Reader or Kybook can pull directly from your library using secure, per-user logins.

The whole thing runs as a standalone application backed by a MariaDB database, which means no subscription, no cloud dependency, and no vendor lock-in. Just a well-built, single-purpose server that treats your book collection as it deserves its own dedicated space.

Sync progress across devices

The perfect digital bookmark

Excerpt from Frankenstein
Jorge Aguilar / MakeUseOf

A digital library is only as good as its bookmarks. If it doesn't remember where you left off, it's really just a glorified folder system. That's why getting your reading progress to sync reliably between your devices and your server is such a big deal.

Grimmory gets this right by building native support for Kobo e-readers and the open-source KOReader app. These are arguably the most important part of the whole setup because they are popular apps and never lose your place, no matter what device you pick up next.

For Kobo users, Grimmory serves as a backend powerhouse by communicating directly with Kobo's native sync language. Ratings you submit on your Kobo also sync back to the server automatically, which is a great quality-of-life touch. It's the kind of feature that shows developers actually use their own software.

KOReader runs on most e-ink devices and Android tablets, and Grimmory includes a built-in implementation of KOReader's sync API. You don't need to run a separate sync server; Grimmory handles it out of the box. KOReader sends small HTTP requests that include your exact position, chapter index, and read state.

KOReader and Kobo's native reading engine calculate text flow differently, so Grimmory keeps its progress data in completely separate database schemas. This stops one engine's position data from garbling your progress on the other.

There are a few operational details worth keeping in mind to make everything work smoothly. KOReader users should switch their matching strategy from the default "Name-based" to "Binary/Hash-based. This makes KOReader fingerprint the actual book file rather than relying on the filename, which helps Grimmory track your progress across multiple devices even when filenames differ.

If you're using Cloudflare Tunnels for remote access, make sure aggressive edge caching is turned off for Kobo API endpoints; your e-reader may get stale cached responses instead of live updates, causing sync failures. Also, KOReader annotations and highlights don't sync back to Grimmory.

Books don't have to be an afterthought

Self-hosting is more difficult than it seems. You're taking on the responsibility of managing your own local storage and database, and you will need to spend some time adjusting your device configurations to keep your reading progress tracking smoothly. If you're using remote access tools, you even have to watch out for caching issues that can break your sync. However, if you want a lightweight platform that respects your privacy and completely removes cloud dependency, Grimmory is an incredibly sharp way to do it.

Grimmory logo on a transparent background
OS
Linux, macOS, Windows
Developer
Grimmory Tools

Grimmory is an open-source, community-driven digital library that is a fork of Booklore.