Readest: Open-Source Ebook Reader for Cross-Platform Deep Reading
Readest is a modern, feature-rich ebook reader designed for avid readers offering reliable cross-platform access, powerful tools, and an intuitive interface to elevate your reading experience.
At a glance
- What is it?
- Readest is an AGPL-licensed ebook reader built on Next.js and Tauri v2 that runs on macOS, Windows, Linux, Android, iOS, and the web from a single TypeScript codebase. It goes beyond basic format support with parallel reading, KOReader sync, translation, text-to-speech, and read-along narration.
- Who is it for?
- Readest is the right choice for readers who want a single application that follows them across desktop, mobile, and browser without paying for a subscription. The AGPL-3.0 license is a hard constraint for anyone building a commercial product on top of it.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Readest Is and Who It Serves
Readest is an open-source ebook reader built for readers who want to do more than page through text. The README describes it as a modern rewrite of Foliate, the Linux ebook reader, rebuilt with Next.js 16 and Tauri v2 to reach macOS, Windows, Linux, Android, iOS, and the web from one codebase.
The target audience is people who read seriously: researchers annotating technical papers, language learners switching between original text and translation, anyone who wants their reading position, notes, and bookmarks synchronized across every device they own. The application is free to use, published under AGPL-3.0. Binaries are available for mobile through the Apple App Store and Google Play, as shown in the README's Downloads section.
Format Support, Parallel Read, and Library Management
The README's feature table lists support for EPUB, PDF, MOBI, KF8 (AZW3), FB2, CBZ, TXT, and Markdown files. The full-text search capability works both inside a single book and across the entire library shelf, which makes it practical for reference collections.
Parallel Read is one of the more distinctive features: it opens two books or documents side by side in a split-screen view, useful for reading a book alongside its translation or comparing two editions. The README also lists code syntax highlighting for software manuals, which the feature table confirms is implemented.
Annotations and highlighting include bookmarks, notes, and highlights. An instant mode is available for quicker interactions when annotating. The dictionary and Wikipedia lookup supports built-in sources and local packs, including Yomitan ZIP and RDICT formats, configured through Settings under Custom Dictionaries.
Library management includes organizing, sorting, and managing an ebook collection. OPDS and Calibre integration lets users connect to online libraries and existing Calibre servers without exporting files first. The Web Page Clipping feature opens websites from within the reader and clips them into the library. The From Web Novel mode can reuse an existing browser session to import selected chapters and their images directly. File association support lets users open files in Readest from their file browser with a single click. Audiobook playback and management is also listed as an implemented feature.
Installing Readest with Docker
For self-hosted web deployment, the repository provides a Dockerfile and docker-compose configuration. The Dockerfile uses a Node.js 24 slim base image and requires pnpm 11.1.1, which is activated through corepack. The build process starts with dependency installation:
git submodule update --init packages/foliate-js packages/simplecc-wasmThis step is mandatory: the Dockerfile contains an explicit check and will exit with an error message if the submodules are absent before the Docker build begins. After the submodules are in place, the web app runs on port 3000. The Dockerfile exposes the development server with:
pnpm dev-web -H 0.0.0.0The build stage accepts several environment variables as build arguments, including NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, NEXT_PUBLIC_APP_PLATFORM, and NEXT_PUBLIC_API_BASE_URL. These configure the sync backend. For local development without the full cloud infrastructure, the README directs developers to run the dev-web script from the readest-app package.
Sync, KOReader Integration, and Narration
Cross-device sync is available for book files, reading progress, notes, and bookmarks across all supported platforms. The README also lists a separate KOReader sync capability that synchronizes reading progress, notes, and bookmarks specifically with KOReader devices, which extends the usefulness of Readest for readers who use e-ink hardware alongside a desktop or mobile app.
Text-to-speech support covers smooth, multilingual narration and works even within a single book that contains multiple languages. The Read-Along Narration feature goes further: it plays EPUB 3 Media Overlays with timed highlighting, or it can pair a reflowable EPUB with a locally stored DRM-free MP3, M4A, or M4B audio file. The README notes that Storyteller, a separate tool for generating phrase-aligned EPUBs, is also an option for Read-Along.
Translation through DeepL and Yandex is built in and works on a single sentence or an entire book. The Visual and Focus Aids section of the feature table lists a reading ruler, a paragraph-by-paragraph reading mode, and speed reading features. Accessibility support covers full keyboard navigation and screen readers including VoiceOver, TalkBack, NVDA, and Orca, as stated in the feature table.
Monorepo Structure and Build Dependencies
The repository is organized as a pnpm workspace with a Rust Cargo workspace alongside it. The package.json at the root declares it as a private monorepo named @readest/monorepo. The Tauri v2 native layer lives in apps/readest-app/src-tauri. The Cargo.toml workspace lists apps/readest-app/src-tauri as its only member and excludes the vendored packages under packages/ to avoid dependency resolution conflicts.
The repository maintains forks of several dependencies under packages/, including tauri itself and swift-rs. The Cargo.toml explains that a vendored swift-rs copy is needed because Xcode 26.x broke the upstream version's cross-compilation path. The workspace.package section sets rust-version to 1.90 and the AGPL-3.0 license, with Bilingify LLC listed as the author.
Running tests goes through the readest-app package filter: pnpm --filter @readest/readest-app test. Format checking and lint also scope to that package. This means local development requires pnpm 11.1.1 (the packageManager field in the root package.json) and Rust 1.90 or later.
Planned Features and Current Limitations
The README's planned features table includes AI-powered book summarization (marked as currently in progress) and advanced reading statistics. Handwriting annotations are listed as planned but not yet started. These gaps matter for readers who rely on stylus input on tablets.
The AGPL-3.0 license is a meaningful constraint. Any product built on Readest that is distributed or offered as a service must make its source code available under the same license. This is not a concern for personal use or internal tools, but it rules out incorporating the codebase into a proprietary commercial ebook product without separate licensing arrangements.
The Docker build requires initializing git submodules before the build step. Forgetting this step produces a clear error message rather than a silent failure, but it is an extra requirement compared to projects with fully self-contained builds. Mobile app distribution goes through the App Store and Google Play, not through the repository directly, which means self-compiled mobile builds require platform-specific toolchains.
Alternatives: Foliate and Moon Reader
Foliate is the predecessor that Readest explicitly rewrites. Foliate is a GTK application for Linux desktops with no mobile or web version. Readest extends the same concept to a cross-platform surface using Tauri v2, which wraps a web frontend in a native shell. Developers already comfortable with Foliate on Linux but needing iOS or Android support have a direct upgrade path.
Moon Reader is a proprietary Android ebook app with a free and a pro tier. It does not offer a desktop application or a self-hosted web version, and its source is not available. Readest's free, open-source model with cloud sync and a web reader is structurally different: there is no feature gating and no vendor lock-in on the sync infrastructure, since the backend configuration is provided through environment variables that the deployer controls.
Editorial conclusion
Readest is the right choice for readers who want a single application that follows them across desktop, mobile, and browser without paying for a subscription. The AGPL-3.0 license is a hard constraint for anyone building a commercial product on top of it. Before adopting it, verify that the Docker deployment path matches your infrastructure and that the submodule initialization step (git submodule update --init packages/foliate-js packages/simplecc-wasm) does not cause issues in your CI pipeline.
Frequently asked questions
What is Readest and what are its features?
Readest is an open-source ebook reader built on Next.js and Tauri v2 that runs on macOS, Windows, Linux, Android, iOS, and the web. It supports EPUB, PDF, MOBI, and several other formats, with annotations, full-text search, translation, text-to-speech, KOReader sync, and parallel reading.
Is Readest free?
Yes. Readest is free to use and open-source under the AGPL-3.0 license. The mobile apps are available on the Apple App Store and Google Play at no charge.
Is Readest open source?
Yes. The full source code is published at github.com/readest/readest under the AGPL-3.0 license, which requires that derivative works distributed or offered as a service also publish their source under the same license.
How does Readest compare to KOReader?
KOReader is an e-ink-focused reader that runs on Kindle, Kobo, and Android devices. Readest targets mainstream desktop and mobile platforms with a web frontend, and it can synchronize reading progress and bookmarks with KOReader devices through the KOReader sync plugin.
How do I install the KOReader sync plugin for Readest?
The README links to a wiki page for Readest-KOReader sync configuration. The sync connects reading progress, notes, and bookmarks between Readest on any supported platform and a KOReader device, but the exact plugin installation steps are documented on that wiki page rather than in the main README.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/readest-readest)