v0.4.3 - Webtoons, PDF, and Mixed Media, and a Wiki!
Published on July 25, 2021 by Joseph Milazzo

v0.4.3 is out and it's action packed. What was supposed to be a small update for the dev team to get our build system in order turned out to deliver some huge wins for Kavita.

First up is the new Webtoon Reader mode for Manga/Comic reading. This mode can be activated by clicking the reader mode in the menu. In webtoon mode, you scroll constantly through the pages. Like always, page progress is tracked and we deploy a custom buffing scheme to make it fast and performant, even on mobile devices. Some options in the reader are not applicable under the webtoon reader, like page splitting or fitting, so they will be disabled.

Next up, mixed media libraries. Have you ever had your Light Novels and your Manga and wanted to have them in the same library? Well now that's possible. Going forward, a library is more just a grouping of media. You can have different media types (like epub and cbz) and they can sit next to each other in the same library. Icons will show next to the series name to help you understand that one is a book and one is an archive file.

And lastly, we have PDF and raw image support. PDF support allows for you to read your PDFs within the manga/comic reader. We tried our hardest to provide a more book-like experience, however, PDF support is pretty limited for these functionalities. Raw image support is another new functionality where you can have loose leaf images that behave just like normal archives. There are some best practices to make the images easy to read, see the following:

└── Manga 2
    └── Vol. 1
        └── Ch.1 - Ch.3
            ├── 1.zip
            ├── 2.zip
            └── 3.zip

We also now have a Wiki, which is still a Work in Progress, but has a ton of information to help you with some questions and best practices. If you are interested in helping us build this out, drop us a line in our discord.

There is a ton more to this update, but before we get to it, I want to give a shout out of thanks to those who have donated to us, which are helping us pay for the hosting on our demo, our site, and our stats server. Thank you Allen Sampsell, Aleksey Gring, and H4v3n for your generous donations. The Kavita team appreciates it. 


- Webtoon Reader mode is here. You can now read webtoons (or manga) by solely scrolling. Progress is kept and you can switch to/from it as a reading mode within the Manga Reader (#392)
- Added support for PDFs within Kavita. PDFs will open in the Manga reader and you can read through them as images. PDFs are heavier than archives, so they may take longer to open for reading. (#187)
- Raw Images (Manga/Comic) library types are here. They support loose leaf images within a folder. It is advisable to put a second folder named Volume 1 so the files group as one volume, otherwise they will all be separate specials, not fun. (#375)
- Added a server admin about tab with information about current version and links to discord, github, donations, etc (#391)
- Added iOS and Android icons when saving the page to your home screen (#356)
- Added Library-based action menu to the Library view. You can now scan from the library page without having to go back to dashboard (#363)
- Added Scan Series. From the series actionable menu, instead of scan library, which would kick off a filesystem scan on the library the series belonged to, instead we have "scan series" which will scan the folders represented by that series. If that series has files in the root of the library, the library root is scanned, but only said series files will be processed. This can make a refresh occur in under 500 ms (#371)
- (Parser) Added an alternative, folder-based parsing scheme that should help users with Comic or Ubooquity based naming. Can now also check for folder structure like the following (#313):

└── Manga 2
    └── Vol. 1
        └── Ch.1 - Ch.3
            ├── 1.zip
            ├── 2.zip
            └── 3.zip

- (Parser) Added parser cases for naming conventions FMD2 uses, including Vol.tbd (#361)
- (Stats) We are collecting a few new pieces of information for those that are allowing anonymous stat collection. We have added if you are on docker, if you are using the dark mode, and the number of cores. Please remember this data is anonymous and not tie-able back to you. You can inspect what we collect here. (#407)
- (Accessibility) Nearly every page has had a title set for it (#422)
- Added a new button on admin dashboard to clear cache for the whole server (#428)
- Added Timeout for Regex matching to ensure malicious filenames don't crash system


- Major change in how Kavita libraries work. Kavita libraries will now allow for mixed media types, that means you can have raw images, archives, epubs, and pdfs all within your Manga library. In the case that the same Series exists between 2 different types of medias, they will be separated and an icon will show to help you identify the types. The correct reader will open regardless of what library you are on. Note: You  might have a lot of random series if you have images floating in your folders. (#416)
- Long running API requests like Mark as Read on a series card now disable the buttons until the request finishes (#381)
- When navigating to a url and being redirected to authenticate, Kavita will attempt to redirect after authentication to the original url
- Updated a few locations to redirect users back to library path instead of home, to prevent a back loop
- Refactored how downloading works on the UI side to use the backend's filename whenever possible, else provide a custom name (and use backend's extension) for bundled downloads. (#405)
- For Specials, Get Next/Prev Chapter should use the filename instead of arbitrary Number (which is always 0). Use the same sorting logic when requesting volumes on series detail, so sorting can happen in the backend. (#422)
- Moved the download logs to the new System page (#428)


- Fixed a bug where certain titles could loose custom name overrides after a scan (#384)
- (Parser) Fixed a bad parsing case for "Series Name - Vol.01 Chapter 029 8 Years Ago" where somehow the chapter would parse as "029 8", thus making the file a special rather than chapter 29.
- When viewing a volume's files from a card's action menu, files were displayed in an arbitrary order instead of the reading order. This applied only for Specials and Raw Images. (#378)
- Fixed a bug with reading order when you have a volume file and chapter files bundled in one virtual volume, the continuous reader would not be able to navigate through them properly (#380)
- When server connection was lost and restored, the no connection page did not restore you to your previous page (#379)
- After creating a new user, the Last Active would show "01/01/0001" to denote never active, now "Never Active" will show (#376)
- (Manga Reader) Fixed an issue with Manga reader where every 7 pages a hard request would be made (and thus a loading indicator). Now pre-fetching works much better and loading indicators should almost never be seen. (#372)
- (Book Reader) Fixed an issue where Book Reader would not properly save the last position when a book didn't have a Table of Contents, even though it should regardless of Table of Contents (#360)
- (Book Reader) Fixed an issue where Book Reader wouldn't let you click on anchors in the page, when "Tap to Paginate" was on (#364)
- (Book Reader) Aligned the cover overlays for where to click for Tap to Paginate to the same colors as Manga Reader (#365)
- (Parser) Special Markers were taking series name parsed from filename which was unreliable. Instead, it will attempt to parse it from folder name (till library root). i.e) /manga/Hippos Attack/Specials/Artbook SP01.cbz -> Series name: Hippos Attack (#359)
- Fixed an issue where after adding a collection tag to a series, upon closing the modal, the underlying page didn't reflect the new changes (#393)
- Fixed an issue when the series detail thumbnail was too long it would push down the Volumes/Specials selection (#412)
- After adding a role to a user, ensure the screen updates immediately (#413)
- Fixed a bug where epubs would download as zip files instead of their native extension (this also applies to Manga/Comic libraries) (#399)
- Fixed an issue where checking if a file was modified since last scan always returned true, meaning we would do more I/O than was needed (#415)
- There wasn't enough spacing on the top menu bar on the Manga reader (#416)
- Fixed a bug where user preferences dark mode control always showed true, even if you were not using dark mode (#416)
- Fixed a bug where a forced metadata refresh wouldn't trigger a volume to force a refresh of cover image (#422)