# Kavita v0.8.9 — v0.8.9 - New Stats pages, Journal Style reading, 50x Faster Scanner, and so much more! - Product: Kavita (https://whatsnew.fyi/product/kavita) - Vendor: Kavita - Date: 2026-01-14 - Version: v0.8.9 - Original notes: https://github.com/Kareadita/Kavita/releases/tag/v0.8.9 - Permalink: https://whatsnew.fyi/product/kavita/releases/v0.8.9 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Auth Key system allowing users to create named API keys with configurable expiration and length (9-32 characters) as replacement for JWTs - **added** — Client Devices feature to track and manage different devices interacting with Kavita, with ability to rename and view mechanism type - **added** — Journal-style progress tracking to record reading sessions and re-read counts without overwriting previous progress - **added** — Double Reader page offset feature modeled off MangaDex - **added** — Device-bound Reading Profiles allowing reading profiles to be bound to specific client devices with precedence over library or series settings - **changed** — Auth stack reworked to be driven completely in middleware layer, extracting key information from different authentication mechanisms and coalescing device from fingerprinting - **changed** — Scanner is now multi-threaded with significant performance improvements achieving up to 112x faster scanning speeds - **changed** — Cover generation moved to background async thread, occurring after series appear in Kavita rather than simultaneously - **changed** — API authentication now works consistently across all authentication mechanisms with same interface for all APIs Happy New Year! Every year, I hope to have a release at the end of December or the Start of January, but it never seems to happen; the scope of Kavita releases have just become too large. This release of Kavita is quite expansive and completes on of the core goals I laid out last year - Journal Style Progress. But it's not just that, it's **12 Feature Requests** with a total of **98 upvotes**, it's reworking a lot of foundational code now that we have multiple authentication mechanisms, improving Developer Experience working with Kavita (no more JWT management), a **MASSIVE** speed improvement to the scanner, and of course a brand new stats system for Kavita (with a lot of inspiration from Hardcover). Since this is such a massive release, I wont be able to highlight all the large improvements, but I know you'll love it. Before I go some of the big hitters, I want to talk about what Amelia and I have planned for this year. Carrying over from last year, there are a few more areas of interest, then we plan to step back and start building an official, native mobile app experience for Kavita. The key areas of focus: * **Reading List Overhaul Project** - I've worked closely with the CBL group to define some key improvements to Kavita's reading list experience along with the CBL import. * **Kobo Sync** - Another big one that most other servers have adapted. We have Progress Sync support already, but this is the icing on the cake. * **Kavita+ Enhancements** - Hardcover and MangaBaka (once it's stable) are still on my list, along with a slew of issues that have been piling up. I look forward to your feedback on the new release. Before we go, I'd like to give a shout-out to @daydreamrabbit who has been very active in testing this release and opened a whopping 39 issues this release, of which we closed 26! ##### Highlights First off, let's focus on the Foundations of Kavita with 3 key features: ###### Auth Stack Last release, Kavita added OIDC into the mix of authentication. While not an issue, users started noticing inconsistency on when their last updated for the accounts were, asking for it on OPDS. Kavita has grown to be quite complex and I knew with this release, I wanted the concepts of Devices (something that has prevented binding reading settings per physical device). The Auth stack has been reworked to be driven completely in the middleware (the code that runs between your browser making the request and Kavita's code actually handling it). This middleware stack extracts the key information from the different authentication mechanisms, coalesces a device from fingerprintint, and tracks it if needed. A lot of polish has gone into this layer to ensure speed. This also results in easier code for Amelia and I when building new APIs. ###### Developer Experience Since we have this new Auth stack, it was finally time to move off the JWTs for external applications. JWTs were handy because they fit into the existing codebase seamlessly, but with the power of the new auth, it doesn't matter how you connect, Kavita will derive the same data and interface for all APIs to use. So now, any user can create a named Auth Key (replacing the hardcoded api key) with their own expiration (or never) and a configurable length (9-32 characters). Attach that as the header (x-api-key) and you will have the same benefit as using a JWT. If there is an expiration, use /api/plugin/authkey-expires. ###### Client Devices Client devices are the last piece of the puzzle and a critical aspect of this release. A client device is any device that interacts with Kavita. Users can after the fact rename them, but as you see here, the mechanism (Web App, OPDS Client, KOReader) and user are present. This will help end users know how different external apps, but also drives the activity mechanism (like Plex has) to ensure you don't bounce your server while people are reading.