EbookApr 17, 2026 · Updated Oct 13, 2026 · 10 min read

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.

📖
Try the EPUB Builder
Create a valid EPUB 3 ebook in your browser
→
DG
Derek Giordano
Designer & Developer
In this guide
01What an EPUB File Actually Is02The Metadata Fields That Actually Matter03Structuring Chapters04Cover Image05Where You Can Distribute Your EPUB06Worked Example: Five Ways to Break an EPUB07Common Validation Gotchas

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):

VariantEPUBCheck result
Minimal valid book (no author)Pass
mimetype compressed instead of storedFail — PKG-007
mimetype not the first file in the zipFail — PKG-006
No dc:languageFail — RSC-005 (schema error)
Chapter loads an image from https://example.comFail — OPF-014 and RSC-006 (remote resource)
Language written as englishPass — 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?+
Yes, through Amazon's conversion. Email the file to your @kindle.com address, upload it on the Send to Kindle web page, or send it from a Kindle app, and Amazon converts it before it reaches the device. Copying the .epub to a Kindle over USB does not work, because Kindle devices cannot open EPUB. Kindle Direct Publishing also accepts EPUB as a manuscript format.
Do I need an ISBN?+
Only for commercial retail distribution through most bookstores — Apple Books, Barnes & Noble, and most physical retailers expect one. Amazon KDP and Google Play accept ebooks without an ISBN and assign their own internal identifiers. For personal, internal, or free distribution, a UUID (which our tool generates automatically) is sufficient.
Why is my EPUB being rejected during upload?+
The most common cause is validation errors detected by EPUBCheck. Our tool produces output that validates, but issues can creep in if you hand-edit the XHTML after export — unclosed tags, malformed entities, broken links between files. Run your EPUB through a public EPUBCheck service before uploading to strict distributors like Apple Books, and fix any errors reported.
Can I include multiple authors?+
Yes — enter multiple names separated by commas in the Author field (e.g., 'Jane Smith, John Doe'). For more control over author roles (editor, illustrator, translator), you'd need to hand-edit the OPF file after export. The Dublin Core metadata in EPUB supports rich contributor roles, but most readers only surface the primary author anyway.
Does my ebook need a cover?+
Technically no — the EPUB will validate and open without one. Practically yes — every reader shows a generic placeholder if there's no cover, which looks unprofessional and makes your book harder to find in a grid of other ebooks on a reader's home screen. Even a simple title card is better than nothing.
Can I update the EPUB after publishing?+
You can re-export a new version anytime with updated content. For retail distribution, each retailer has its own update process — KDP allows you to upload new versions that push to customers who bought previous ones. Apple and Google similar. If you're distributing directly, you just send the new file. Consider bumping a version string in your title or description so readers know they have the latest.
Try it yourself

Create a valid EPUB 3 ebook in your browser

⚡ Open EPUB Builder
DG
Derek Giordano
Written by the creator of Ultimate Design Tools. BA in Business Marketing.