What is EPUB formatting, and how does EPUB 3 differ from EPUB 2?
EPUB formatting is the construction of a conformant EPUB package: valid XHTML content documents, a package document holding metadata, manifest and spine, a navigation document, supported CSS and correctly declared resources. EPUB 3 replaced XHTML 1.1 with HTML5, replaced the NCX with the navigation document, added media overlays and proper accessibility metadata, and brought fixed layout into the standard. EPUB 2 files still exist in huge numbers and stores are progressively refusing them, which is why so much of our work is bringing old packages up to the current specification.
What is inside the package document, and why does it matter?
The package document, usually an OPF file, is the governing file of the whole archive. It holds the metadata, the manifest and the spine. The metadata says who wrote the book, in what language, and under what unique identifier. The manifest lists every single resource in the package with its media type. The spine sets the reading order. Almost every retailer rejection we have investigated came back to something declared wrongly here, or something in the archive that was never declared at all.
What is the difference between the spine and the manifest?
The manifest is the inventory and the spine is the itinerary. The manifest declares every resource the package contains, including images, fonts, the stylesheet and the navigation document, each with its media type. The spine lists only the content documents, in the order a reader moves through them. A file can be in the manifest without being in the spine, which is correct for an image. A file in the spine that is missing from the manifest is a fatal validation error.
Do I still need an NCX file, or is the nav document enough?
Strictly, the navigation document is enough for EPUB 3 conformance and the NCX is deprecated. Practically, you should ship both. Older Kindle hardware and a number of library distribution platforms still look for the NCX, and when they do not find one the reader gets a book with no contents list and no explanation. Including it adds a few kilobytes to the archive. Omitting it silently disadvantages a real slice of your readership, so we generate both from the same structure.
Which EPUBCheck errors are fatal, and which are just warnings?
Fatal errors stop the file being a valid EPUB and every ingestion pipeline will refuse it: a manifest that disagrees with the archive, content documents that are not well formed, a missing or malformed container, a remote resource where none is permitted. Warnings are advisory and some are safe to leave, such as certain notices about deprecated but functional constructs. The dishonest move is to ship warnings without reading them. We deliver at zero errors and we explain in writing any warning we have chosen to leave in place.
Why does my EPUB look different in Apple Books than in Kindle Previewer?
Because they are different rendering engines with different levels of CSS support, and because Amazon converts your EPUB into its own internal format at ingestion rather than displaying it directly. Apple Books honours your stylesheet closely. Amazon's conversion discards or reinterprets a good deal of it, particularly around fonts, margins and anything involving precise positioning. This is not a fault in your file. It is the market, and the answer is to write CSS that degrades gracefully rather than CSS that only works in one place.
Which CSS properties are safe to use across reading systems?
The reliable core is smaller than most designers expect: relative font sizing, line height, margins and padding in em units, text alignment, text indent, basic font family with a fallback stack, page-break-before and after, and simple percentage widths on images. Beyond that, support fragments quickly. Multi-column layouts, advanced selectors, custom properties, floats around images and anything involving precise positioning behave differently on every engine. We use what is supported, declare fallbacks for what is not, and test the result rather than assuming.
Can I embed commercial fonts in an EPUB, and what does the licence have to say?
You can only embed a font whose licence explicitly permits embedding in an electronic publication. Many desktop licences do not, and a print licence almost never does. Shipping a font without that permission exposes you to a takedown or worse. We audit each typeface, and where the licence allows it we subset the font to the glyphs your book actually uses, declare it in the manifest, and obfuscate it where the foundry requires that. Where it does not allow it, we propose a face that does and looks close.
What are media overlays, and do I need them?
Media overlays are a part of the EPUB 3 specification that synchronises recorded narration to the text using SMIL, so a supporting reading system highlights each phrase as it is spoken. They are genuinely useful for children's books, language learning and accessibility, and they are supported by a minority of reading systems. If your audience is on Apple Books or on an accessibility platform, they are worth building. If you are chiefly selling prose fiction on Amazon, they will be quietly ignored and the file will simply be larger.
Why was my EPUB rejected by the retailer, and can you tell me exactly which rule it broke?
Usually yes, and often within a few hours. Forward the retailer's rejection notice along with the file itself. Retailer error codes are terse but they identify a class of failure, and the file then tells us which specific instance of it you hit. The recurring causes are a manifest that does not match the archive, remote resources referenced from inside the package, content documents that fail to parse, a missing or wrong media type, and legacy markup that the store stopped accepting. All of them are fixable.
What is the difference between a reflowable and a fixed-layout EPUB in the package metadata?
It is declared explicitly. A fixed-layout package carries rendition properties in the metadata stating that the layout is pre-paginated, along with the spread behaviour and orientation. Each content document then sets an explicit viewport in pixels, and elements are positioned inside that canvas. A reflowable package declares none of this and leaves the reading system free to repaginate. Retailers treat the two as separate products with separate validation expectations, so getting the declaration wrong is not a cosmetic error.
How do accessibility metadata and semantic tags affect my EPUB?
They decide whether a screen reader can navigate the book and whether an institution is allowed to buy it. Accessibility metadata declares what features the file has: a described reading order, alt text, structural navigation, no known hazards. The semantics decide whether a note is announced as a note and a heading is announced as a heading. Libraries, universities and buyers in several jurisdictions now check this before purchasing, and retrofitting it into a finished package costs several times what building it in would have.
Does my EPUB need a cover image inside it, or does the store use its own?
Both, and they must agree. The store displays the cover you upload separately to its catalogue, and the EPUB must also contain a cover image declared in the manifest with the cover-image property. That internal cover is what the reader sees inside their library and on the first screen of the book. Files that omit it show a blank placeholder in the reader's own shelf, which looks like an error to the person who has just paid for the book.
What is the OPF, and can I edit it myself?
The OPF is the package document, and yes, you can edit it, which is exactly why we ship you the unpacked source. It is an XML file and it is readable. Change the title, add a contributor, correct the language attribute. What you must not do is edit it, rezip the archive carelessly and skip revalidation, because the mimetype file has to be stored first and uncompressed, and a naive zip will break that and produce a file no reading system will open.
How do you handle MathML and technical notation in EPUB 3?
MathML is part of the EPUB 3 specification and support across reading systems is uneven. We mark equations up as MathML, so the notation is real, selectable and readable by assistive technology, and we supply a rendered image fallback for the systems that will not display it. The alternative that many people choose, pasting equations in as pictures, produces something that looks acceptable and is unsearchable, unscalable, invisible to a screen reader and unreadable at a large type size.
Do you support EPUB fixed layout with SVG text?
Yes. Setting text as SVG inside a fixed-layout package preserves the exact letterforms and their exact positions, which matters when the design will not tolerate any substitution or reflow. The cost is that SVG text is not always selectable or searchable, and support for it varies. We use it where the design genuinely demands it, usually in picture books and comics, and we advise against it where ordinary embedded text in a fixed viewport would have done the same job more accessibly.
What identifier should my EPUB carry, and does it need an ISBN?
The package must carry a unique identifier in the metadata. An ISBN is the usual choice and it is what retailers and libraries expect, but the specification only requires uniqueness, so a UUID is valid where you have no ISBN. What matters most is that the identifier inside the file matches the one you enter at the store. A mismatch causes the sort of ingestion problem that is very hard to diagnose from the error message the store sends back.
Why does EPUBCheck complain about my remote resources?
Because an EPUB is meant to be self-contained. A book that fetches its images or fonts from a URL will render on the machine that built it, where the network is available, and then fail for a reader on a plane, on an e-ink device with the radio off, or after the hosting server is retired. The specification permits remote resources only in narrow circumstances. In practice we package everything the book needs inside the archive, which is the only way the file is durable.
How do you test an EPUB before it goes to a retailer?
Validation first with EPUBCheck, run early against the content documents and again on the final package. Accessibility tooling next, to check reading order, headings, alt text and language. Then the reading-system matrix: Apple Books, Kindle Previewer and physical e-ink, Kobo, Nook, Google Play, Adobe Digital Editions and a reference reader that follows the standard closely. The last of those is the important one, because it shows where a file has been relying on one vendor's forgiveness rather than on actually meeting the specification.
Can you deliver a Kindle file from the same EPUB source?
Yes, and it is built from the validated EPUB rather than converted sideways from anything else. Amazon accepts EPUB directly at upload and performs its own conversion at ingestion, so the derived file we produce and check in Previewer is really a preview of what that conversion will do to your book. Seeing it before you publish means you can adjust the stylesheet where Amazon has reinterpreted something, instead of finding out from the first reader who mentions it in a review.