How to Create an EPUB Ebook (2026)
EPUB is what ebooks actually are. Apple Books, Google Play Books, Kobo, Barnes & Noble — every mainstream reader except Amazon Kindle uses EPUB as its native format, and Amazon has recommended EPUB for Kindle publishing since it stopped accepting MOBI files for reflowable books on KDP (August 2021); Send to Kindle has accepted EPUB documents since 2022. If you want to publish a book, share a guide, assemble a collected works, or just give a friend something their iPad will treat as a real book rather than a screenshot of one, EPUB is the format. This guide covers what EPUB actually is under the hood, how to build one without $239/year Adobe software or a desktop download, and how to make sure yours will actually work in readers.
What an EPUB File Actually Is
An EPUB file is a zip archive with a specific internal structure. Rename any .epub to .zip and unzip it and you'll find three top-level things: a file called 'mimetype' (just contains the text 'application/epub+zip'), a META-INF folder with a container.xml that tells readers where the package file lives, and an OEBPS folder that contains the actual book content as XHTML files plus a content.opf package document that ties everything together.
This structure comes from the EPUB specification maintained by the W3C. The current mainstream version is EPUB 3, which superseded EPUB 2 but remains backward-compatible with it. EPUB 3 added proper HTML5 support, SVG, embedded fonts, media overlays for read-aloud, fixed-layout options for comics and children's books, and a proper navigation document to replace the older NCX table of contents.
The clever thing about EPUB is that it's just web technology in a wrapper. Each chapter is an XHTML5 file. Styling is CSS. Images are referenced the normal way. If you know how to build a webpage, you know 80% of how to build an ebook — the rest is about the packaging metadata and the zip structure. Our tool handles all of that automatically so you can focus on content.
The tradeoff EPUB makes is that it's strict about validity. A PDF that's slightly malformed will usually still render. An EPUB that's slightly malformed may refuse to open entirely in strict readers like Apple Books or get rejected by distributors that run EPUBCheck (the reference validator) on every upload. Building with a tool that produces valid output matters more here than with most formats.
The Metadata Fields That Actually Matter
EPUB 3 requires four metadata entries: a unique identifier, a title, a language and a last-modified timestamp (dcterms:modified). An author (dc:creator) is not required — our minimal test book below had none and passed EPUBCheck — but every retailer will want one. These fields show up on the reader's home screen and in library listings, so get them right.
The identifier is required too and often confuses first-time publishers. Every EPUB needs a unique identifier in the form of either a UUID (a randomly-generated unique string) or an ISBN. For commercial retail distribution through most bookstores, a real ISBN is expected — you can buy these from Bowker in the US or the national ISBN agency wherever you live. For personal use, free distribution, Kindle Direct Publishing, or anything where you're not selling through retail, a UUID is perfectly fine. Our tool generates one automatically.
Publisher and description are optional but both useful. Publisher shows up in library listings and 'more by' sections. Description is the 'back cover blurb' that reader apps display when someone taps the book for details before opening it. If you're planning to distribute the book, write this description like the back of a real book's jacket — not like an internal note.
The language field takes a BCP 47 language tag: en, es, fr, ja, or regional forms such as en-US and pt-BR. Readers use it for hyphenation, text-to-speech voice and font fallback. Be careful with the spelling: in our test, EPUBCheck accepted english without complaint, because it is well-formed even though it is not a registered language code — so a validator pass does not prove the tag is right.
Structuring Chapters
Ebooks work best as a sequence of short files rather than one giant document. Each chapter gets its own XHTML file. Readers can load them on demand, users jump between them via the table of contents, and bookmarks work reliably. An EPUB with 20 short chapter files performs much better in readers than one with a single 300-page file — and the latter sometimes just refuses to open on older hardware.
Our tool lets you maintain chapters as separate units from the start. Each chapter has a title (what appears in the table of contents) and content (the body). You can write content in Markdown for speed or in HTML when you need precise control over styling. Markdown gets converted to clean XHTML on export — headings become h1/h2/h3 tags, lists become ul/ol, bold/italic/links work the way you'd expect.
If you're importing a long manuscript, convert it to Markdown, paste it all into one chapter in Markdown mode, then use Auto-split on H1 headings. The tool scans for # lines and breaks the content into one chapter per H1, preserving the heading text as each new chapter's title. This is the fastest way to move a large draft into the tool without hand-splitting.
Use H1 for the chapter title (though the tool adds the chapter title automatically as the page title, you can still use H1 inside for the opening heading), H2 for major sections within a chapter, and H3 for sub-sections. Screen readers rely on this hierarchy; many readers use it to build their internal navigation; and it makes reflow look clean regardless of what font size the reader picks.
Cover Image
The cover is the single most-seen asset of your ebook. It appears on the reader's home screen, in library grids, in 'recently read' widgets, and on every device your book shows up on. Spending real time on the cover is usually higher-ROI than polishing a middle chapter.
Upload a cover as JPG or PNG. A 2:3 aspect ratio (e.g., 1600×2400 pixels) is the de facto standard — most retailers either require this or crop everything into it. Keep it under 5 MB total; under 2 MB is ideal. Bigger doesn't make it look nicer, it just slows loading.
For professional-looking covers, use a design tool. Our Business Card Generator is too small; for full covers you'd want something like Canva, or hire a designer on Reedsy or 99designs if you're investing in the book commercially. What you upload here gets embedded as-is and flagged in the EPUB metadata with the 'cover-image' property so readers pick it up correctly.
If you don't upload a cover, the EPUB still validates, but most readers will show a generic placeholder. For anything you're proud of, upload something — even a plain text-only title card is better than the default.
Where You Can Distribute Your EPUB
Amazon Kindle Direct Publishing (KDP) accepts EPUB files directly. Upload via kdp.amazon.com; Amazon converts internally to their format. This is the single biggest ebook market. Kindle readers and Kindle apps will then display your book. Note that Amazon takes exclusivity if you enroll in KDP Select, so read their terms before enrolling.
Apple Books accepts EPUB through Apple Books for Authors / iTunes Connect and checks files on upload. Run EPUBCheck yourself first so you are not debugging from a rejection email; our output passes it, but re-validate after any hand edits.
Google Play Books Partner Center accepts EPUB. Their quality bar is mid — strict about metadata but forgiving about content formatting. Revenue share is reasonable.
Kobo Writing Life is the indie-friendly option — simple upload, no exclusivity requirement, and international reach through Rakuten Kobo's stores.
For free distribution: email the EPUB directly, host it on your own site, or upload it through an aggregator such as Draft2Digital (which absorbed Smashwords in 2022). Standard Ebooks is not an upload site — it produces its own editions of public-domain books. For company documents or course content, just share the file: Apple Books, Google Play Books and free readers such as Thorium Reader open it.
Worked Example: Five Ways to Break an EPUB
We built a minimal EPUB 3 (one chapter, a navigation document, identifier, title, language, modified date) with a short Python script and five deliberately broken copies, and ran each through EPUBCheck 5.2.1, the W3C's reference validator (script and results in our test folder, October 13, 2026):
| Variant | EPUBCheck result |
|---|---|
| Minimal valid book (no author) | Pass |
mimetype compressed instead of stored | Fail — PKG-007 |
mimetype not the first file in the zip | Fail — PKG-006 |
No dc:language | Fail — RSC-005 (schema error) |
| Chapter loads an image from https://example.com | Fail — OPF-014 and RSC-006 (remote resource) |
Language written as english | Pass — not caught |
The first three failures come from re-zipping an EPUB with an ordinary zip tool or editing metadata by hand; the fourth is why everything an EPUB shows must be inside the file. The last row is the reminder that a validator checks structure, not meaning.
Common Validation Gotchas
The mimetype file must be the first file in the zip and must be stored uncompressed. Our tool handles this automatically, but if you're hand-editing afterward and re-zip with a naive tool, you'll break this requirement and strict readers will refuse the file. If you need to edit, edit content then let the tool rebuild.
External resources won't load. Any ebook reader might be offline. Remote images, remote fonts, remote stylesheets simply fail to render. Every asset your ebook needs must be bundled inside the EPUB. Our tool inlines metadata and generates the stylesheet in-file, so exported books are fully self-contained.
JavaScript is not a guarantee. Some readers support EPUB 3's JavaScript feature, others ignore it entirely. Your ebook should work fine if JS is stripped out. Don't put essential interactivity in scripts; use it only as progressive enhancement.
Fonts have to be embedded if you're using anything non-standard. System fonts (Georgia, Helvetica, serif, sans-serif) work everywhere. Custom fonts need to be packaged in the EPUB and referenced with @font-face — and you need a license that permits embedding. Our default stylesheet uses system fonts for maximum compatibility.
Table of contents requires the epub:type='toc' attribute on a nav element with a proper ordered list inside. Our tool generates this automatically from your chapter order; if you're editing after export, preserve the structure.
Frequently Asked Questions
Will my EPUB work on Amazon Kindle?
Do I need an ISBN?
Why is my EPUB being rejected during upload?
Can I include multiple authors?
Does my ebook need a cover?
Can I update the EPUB after publishing?
- [1]W3C EPUB 3.3 (Recommendation): package metadata, OCF container (mimetype first, stored) ↗
- [2]W3C EPUBCheck 5.2.1 release (validator used in our test) ↗
- [3]Amazon KDP Help: MOBI support ended for reflowable eBooks Aug 1, 2021; use EPUB, DOCX or KPF ↗
- [4]IETF BCP 47 / RFC 5646: Tags for Identifying Languages ↗
- [5]Draft2Digital: Draft2Digital acquires Smashwords (closed March 1, 2022; platforms merged) ↗
- [6]Standard Ebooks: About (produces its own public-domain editions) ↗