Hello @dteviot π
First of all, thank you for building and maintaining WebToEpub over the years. It's an incredible tool and the community around it is a testament to how useful it is. I've been using it daily and decided to explore a different way to deliver the same power to users.
What I Built
I created a standalone web application version of WebToEpub, live here:
π rasadonly.github.io/WebToEpub-App
It is based entirely on your codebase β same parsers, same logic, same EPUB output quality β but it runs as a regular website in any browser tab, with zero installation required.
How It's Different from the Main Extension
| Feature |
Your Extension |
This Web App |
| Installation |
Required (Chrome/Firefox store) |
β None β open a URL and go |
| Browser support |
Chrome, Firefox, Edge |
Any modern browser, including mobile |
| Android support |
Firefox Nightly only |
β
Full support β just open the site |
| Extension permissions |
Required |
Not needed |
| Deployment |
Browser store review process |
Instant via GitHub Pages |
| CORS restrictions |
Extension bypasses them natively |
Solved via CORS proxy (see below) |
The Core Technical Challenge β CORS
Browser extensions work because they have special host_permissions that let them fetch content from any site without hitting CORS (Cross-Origin Resource Sharing) restrictions. A plain website running in a browser tab doesn't have these β the browser blocks cross-origin fetches by default.
How We Solved It
We added an optional, configurable CORS proxy layer to the fetch pipeline. When the app is running as a website (not an extension), all chapter/image fetches are routed through a CORS proxy server that:
- Receives the request from the browser
- Fetches the target URL server-side (no CORS restrictions)
- Returns the response with proper
Access-Control-Allow-Origin headers
The proxy URL is fully user-configurable in Settings β users can plug in any cors-anywhere-compatible endpoint. We also included a guide (DEPLOY_PROXY.md) so users can self-host a free private proxy on Render.com in minutes.
The proxy is opt-in β if someone loads the page as a local extension or in an environment where CORS isn't a problem, they can disable it entirely.
Why This Helps Users
-
No installation friction β A huge portion of potential users never install extensions. A website link they can bookmark and share immediately is a much lower barrier to entry.
-
Works on Android β The extension currently requires Firefox Nightly on Android. The web app works on any Android browser (Chrome, Firefox, Samsung Internet, etc.) out of the box.
-
Works in restricted environments β Schools, workplaces, and managed devices often block extension installation. A website works everywhere.
-
Easy to share β Anyone can share rasadonly.github.io/WebToEpub-App/ with a friend who wants to convert a novel. No "first install the extension" step.
-
Serves users who can't use extensions β iOS Safari does not support WebExtensions at all. A web app is the only way to reach these users.
My Request
I'd love for you to consider hosting this as a separate branch (e.g., web-app or webapp-cors-proxy) in the official dteviot/WebToEpub repository. This would:
- Keep it part of the official project's history and community
- Allow the main parser updates from
main to be merged in over time
- Let interested contributors improve the web-app experience alongside the extension
- Clearly label it as experimental/alternative so there's no confusion with the main extension
I'm not proposing to change anything about the extension β it stays exactly as it is. This would purely be an additive, opt-in branch showing an alternative way to deploy the same tool.
Repository
My fork with the changes: rasadonly/WebToEpub-App
Branch with web-app changes: rasadonly/WebToEpub-App/tree/web-app-cors-proxy
Live demo: rasadonly.github.io/WebToEpub-App
Happy to open a proper PR, answer any questions, or restructure anything to fit the project's conventions.
Thank you for your time and for everything you've built! π
β prasadghanwatprof-lang (prasadghanwat123@gmail.com)
Hello @dteviot π
First of all, thank you for building and maintaining WebToEpub over the years. It's an incredible tool and the community around it is a testament to how useful it is. I've been using it daily and decided to explore a different way to deliver the same power to users.
What I Built
I created a standalone web application version of WebToEpub, live here:
π rasadonly.github.io/WebToEpub-App
It is based entirely on your codebase β same parsers, same logic, same EPUB output quality β but it runs as a regular website in any browser tab, with zero installation required.
How It's Different from the Main Extension
The Core Technical Challenge β CORS
Browser extensions work because they have special
host_permissionsthat let them fetch content from any site without hitting CORS (Cross-Origin Resource Sharing) restrictions. A plain website running in a browser tab doesn't have these β the browser blocks cross-origin fetches by default.How We Solved It
We added an optional, configurable CORS proxy layer to the fetch pipeline. When the app is running as a website (not an extension), all chapter/image fetches are routed through a CORS proxy server that:
Access-Control-Allow-OriginheadersThe proxy URL is fully user-configurable in Settings β users can plug in any
cors-anywhere-compatible endpoint. We also included a guide (DEPLOY_PROXY.md) so users can self-host a free private proxy on Render.com in minutes.The proxy is opt-in β if someone loads the page as a local extension or in an environment where CORS isn't a problem, they can disable it entirely.
Why This Helps Users
No installation friction β A huge portion of potential users never install extensions. A website link they can bookmark and share immediately is a much lower barrier to entry.
Works on Android β The extension currently requires Firefox Nightly on Android. The web app works on any Android browser (Chrome, Firefox, Samsung Internet, etc.) out of the box.
Works in restricted environments β Schools, workplaces, and managed devices often block extension installation. A website works everywhere.
Easy to share β Anyone can share
rasadonly.github.io/WebToEpub-App/with a friend who wants to convert a novel. No "first install the extension" step.Serves users who can't use extensions β iOS Safari does not support WebExtensions at all. A web app is the only way to reach these users.
My Request
I'd love for you to consider hosting this as a separate branch (e.g.,
web-apporwebapp-cors-proxy) in the officialdteviot/WebToEpubrepository. This would:mainto be merged in over timeI'm not proposing to change anything about the extension β it stays exactly as it is. This would purely be an additive, opt-in branch showing an alternative way to deploy the same tool.
Repository
My fork with the changes: rasadonly/WebToEpub-App
Branch with web-app changes: rasadonly/WebToEpub-App/tree/web-app-cors-proxy
Live demo: rasadonly.github.io/WebToEpub-App
Happy to open a proper PR, answer any questions, or restructure anything to fit the project's conventions.
Thank you for your time and for everything you've built! π
β prasadghanwatprof-lang (prasadghanwat123@gmail.com)