epub-forge is a browser-only document-to-EPUB converter. Drop documents into the page, adjust book details and typography, and download finished EPUB files. Your files stay on your device; nothing is uploaded to a server.
Live site: https://jhste102lab.github.io/epub-forge/
Repository: https://github.com/jhste102lab/epub-forge
- Convert
.txt,.docx,.hwpx, best-effort.hwp, and.zipbundles. - One input document or one image-only ZIP becomes one EPUB book; multiple ZIPs stay separate.
- Edit each book's title, author, and cover. Choose a cover file, drop it on the thumbnail, or focus the thumbnail and paste an image.
- Apply batch-wide typography: font, size, margins, paragraph spacing, line height, indent, and reflow rules.
- Rejoin hard-wrapped lines into readable paragraphs while preserving blank lines.
- Embed a subset of the selected bundled font so the EPUB renders consistently on reader devices.
- Download one EPUB at a time or download the whole batch as a ZIP.
- Use the UI in English, Korean, Simplified Chinese, or Japanese.
- Light and dark themes.
Image ZIPs support JPEG, PNG, and WebP. Pages are naturally sorted by their full archive paths (1, 2, 10) and keep their original bytes and resolution. The actual image format is detected from its bytes, not its filename. Text typography and font embedding do not apply to image pages.
ZIPs containing supported documents retain the existing one-document-per-book behavior and report skipped images. Other image formats are rejected rather than silently losing pages. WebP is an EPUB core image format, but older readers may not support it. A selected or generated cover is added before all original pages, including any cover already inside the ZIP.
All parsing, cover handling, font processing, and EPUB generation run in the browser. The app is hosted as a static site and does not provide accounts, storage, analytics, or server-side conversion.
The repository includes four font files used by the converter:
- Noto Serif KR
- Noto Sans KR
- Pretendard
- RIDIBatang
These fonts are free for commercial use under their own licenses. The application source code is MIT licensed, but bundled fonts and third-party packages remain under their respective licenses. See THIRD_PARTY_NOTICES.md.
Requirements:
- Node.js 22+
- npm
npm ci
npm run devUseful commands:
npm run typecheck
npm run lint
npm run format:check
npm test
npm run build
npm run previewGitHub Pages deployment is configured in .github/workflows/deploy.yml.
For this repository, the public site is expected at:
https://jhste102lab.github.io/epub-forge/
To deploy from GitHub:
- Make the repository public.
- In GitHub, open Settings → Pages and set Source to GitHub Actions.
- Push to
masteror run the Deploy to GitHub Pages workflow manually from the Actions tab.
If the repository owner, repository name, or custom domain changes, update:
homepageinpackage.jsonbaseinvite.config.tsSITE_URLused byscripts/prerender.mjsor its default URL- the live-site link in the README files
MIT for the application source code. See LICENSE. Third-party components are listed in THIRD_PARTY_NOTICES.md.