OpenReader
Self-hosted text-to-speech document reader with synchronized highlighting
Alternative to: speechify, natural reader, elevenlabs reader
v2.0.0
2026-02-19✨ What’s New
TL;DR: OpenReader 2.0 adds full authentication, per-user TTS limits, encrypted data export, a new database layer with SQLite/PostgreSQL support, S3-compatible storage support, a new docs experience, and a full rebrand from OpenReader-WebUI.
Core
- 🔐 Added full user authentication with sign-in, sign-up, account management, and improved session handling.
- 📣 Added per-user TTS rate limiting with character limits, daily resets, and device/IP backstops.
- 📤 Added encrypted user data export and updated privacy page/policy behavior.
- 🗄️ Introduced a new database layer for OpenReader, with both SQLite and PostgreSQL backends (via Drizzle) plus migration tooling.
- 🪣 Migrated server document/audiobook storage off the filesystem to S3-compatible blob storage; Docker uses embedded SeaweedFS by default, with support for external S3-compatible providers.
- 🏷️ Rebranded from “OpenReader-WebUI” to “OpenReader”, including Docker image naming updates (
openreaderwithopenreader-webuias legacy alias).
Additional Updates
- 🛡️ Added route protection/security hardening and optional GitHub authentication.
- 🧩 Added claimable-data flow so pre-auth usage can be migrated into signed-in email accounts.
- 📚 Migrated documents to server-backed storage with caching.
- 🎧 Migrated audiobook storage/pipeline to object storage with user-scoped handling.
- 📖 Added document preview generation/caching with improved failure recovery.
- ⚙️ Added user preferences + document progress syncing and smoother reading transitions via text prefetching.
- 📘 Launched comprehensive docs with deployment guides, configuration references, and TTS provider integration guides.
- 🧪 Expanded reliability work and test coverage across auth, previews, export, storage, and APIs.
Full Changelog: https://github.com/richardr1126/OpenReader-WebUI/compare/v1.2.1…v2.0.0