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 becomes one EPUB book.
- Edit each book's title, author, and cover before conversion.
- 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.
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.