What it is
Add a novel by its table-of-contents URL. Chapterly checks it every day, fetches only the new chapters, and rebuilds the EPUB into your Audiobookshelf library folder. Instead of writing its own scrapers, it runs WebToEpub's 600+ site parsers headless in Node. Your library and reading list stay on your own server.
Features
what it doesDaily checks
A worker checks each novel on its own interval and fetches only chapters it has not saved yet.
600+ sites
Reuses WebToEpub's per-site parsers, so supported sites work without custom scraping code.
Clean EPUBs
EPUB 3 with table of contents and embedded cover, written to a stable path per book.
Audiobookshelf ready
Books land in your library folder, with an optional instant library rescan after each update.
Resilient fetching
Chapters save as they arrive; failures retry with backoff and interrupted checks resume on restart.
Private web UI
Browse, search, and manage your library, with password or OIDC sign-in.
How it works
data flowFollow
Add a novel's table-of-contents URL from the web UI or the CLI.
Fetch
The worker diffs the chapter list and politely fetches only what is new.
Read
The EPUB is rebuilt into your library, ready in Audiobookshelf or any reader.
Stack
built withFAQ
common questionsWhat is Chapterly?
A self-hosted manager for the web novels you follow. Add a novel by its table-of-contents URL; a worker checks it daily, fetches only new chapters, and rebuilds the EPUB into your Audiobookshelf library.
Which sites does it support?
Any site with a dedicated WebToEpub parser, about 600 hostnames. Sites that render chapters with client-side JavaScript or sit behind interactive Cloudflare challenges are not supported yet.
Do I need Audiobookshelf?
No. Chapterly writes EPUBs to a folder. Point that folder at an Audiobookshelf library to have it pick books up automatically, or optionally let Chapterly trigger a library rescan.
How is it deployed?
With Docker Compose: a worker that scrapes and builds EPUBs, and a Next.js web UI. Both share one SQLite database.
What license is it under?
GPL-3.0-or-later, because the worker runs WebToEpub (GPL-3.0) in-process.