# BookSetter™ Vellum Feature Parity

BookSetter™ now tracks Vellum-public feature parity explicitly while separating implemented, partial, tool-dependent, and better-than-Vellum coverage.

## Status Counts

- better-than-vellum: 3
- implemented: 36
- partial: 14
- tool-dependent: 2

## Tooling Notes

- MOBI and ARC MOBI generation require local Calibre ebook-convert or KindleGen tooling. BookSetter™ records this as tool-dependent instead of silently claiming success.
- ACE by DAISY is not installed, so accessibility status remains a generated readiness report rather than certified ACE output.

## Feature Matrix

| Category | Feature | Status | BookSetter™ coverage | Evidence |
| --- | --- | --- | --- | --- |
| Ebook | Kindle/Kobo/Apple Books/etc. output | implemented | BookSetter™ exposes Kindle, Apple Books, Kobo, Nook, Google Play, Draft2Digital, and generic EPUB targets. | cmd/server/main.go exportTargets, cmd/server/main.go generateExportPackage |
| Ebook | Specialized platform files | partial | Targets are separate artifacts with a retailer preview matrix and retailer checklist; deeper CSS/link policies remain a hardening lane. | export_preview_matrix_report.json, RETAILER_CHECKLIST.md |
| Ebook | EPUB 3 / EPUB 2 | implemented | Generic EPUB 3 and EPUB 2 targets are generated separately, with EPUB 2 source normalization and EPUBCheck hooks. | generic-epub3, generic-epub2, epub2SafeMarkdown, writeEPUBCheck |
| Ebook | Image optimization/compression | implemented | Export preparation rewrites local image assets for the package and constrains image sizing in CSS/print TeX. | prepareMarkdownImageAssets, renderExportCSSForDetail, enhancePrintFigures |
| Ebook | ARCs | tool-dependent | BookSetter™ now has an ARC Bundle target that always includes a beta-reader EPUB and includes MOBI when local conversion tooling is installed. | arc-bundle export target, generateARCBundleArtifact |
| Ebook | Accessibility | partial | Accessible mode, semantic reports, and accessibility documentation are generated; final ACE certification still requires the local ACE checker. | ACCESSIBILITY.md, preflight_report.json |
| Ebook | Generic EPUB | implemented | Generic EPUB 3 and EPUB 2 targets are first-class outputs for aggregators. | generic-epub3, generic-epub2 |
| Ebook | Kindle EPUB/MOBI options | tool-dependent | Kindle EPUB is native; Kindle MOBI is now an explicit target that converts when Calibre or Kindle tooling is available and writes an actionable blocker otherwise. | kindle, kindle-mobi |
| Print | Paperback interiors | implemented | Paperback PDF is a first-class target with print preflight and PDF/X post-processing. | paperback-pdf, writePDFPreflight |
| Print | Hardcover interiors | implemented | Hardcover PDF is a separate first-class target with hardcover-aware reporting. | hardcover-pdf, PRINTER_HANDOFF.md |
| Print | 24 trim sizes | better-than-vellum | BookSetter™ exposes 28 preset trim sizes plus validated custom numeric trim input. | trimSizes, parseCustomTrimSize |
| Print | Large print | implemented | Large Print preset and large_print setting enlarge body type and reduce unstable decoration. | large-print style, settings.LargePrint |
| Print | Full-bleed pages | implemented | Cover/page background macros support full-page image placement and bleed-aware reports. | renderPrintHeaderTex, COVER_SPEC.md |
| Print | Page backgrounds | implemented | Print header macros support page-background imagery and page-bottom ornaments. | booksetterbackgroundpage, booksetterpagebottomornament |
| Print | Headers/footers | implemented | Running heads and folios are generated in print TeX and suppressed on front matter/openers where appropriate. | renderPrintHeaderTex, BuildBestInClassPrintLayoutPlan |
| Print | Margins | implemented | Trim-aware geometry resolves inner, outer, top, and bottom margins with custom trim support. | printGeometry, printGeometryFromMargins |
| Print | Page numbers | implemented | Print PDF uses LaTeX folio handling and front/main matter page numbering transitions. | booksetterfrontmatter, booksettermainmatter |
| Print | PDF/X-1a output | implemented | Print PDFs are post-processed toward PDF/X-1a:2003 and verified when local PDF tools are available. | convertPDFToPDFX1a, isPDFX1a2003Info |
| Print | Widow/orphan handling | implemented | CSS and TeX widow/orphan penalties are enabled; diagnostics flag remaining risk. | widows/orphans CSS, renderPrintHeaderTex |
| Print | Spread balancing | partial | Print automation scores spread balance and short-final-page risk; candidate rerender loops are still the visual hardening lane. | BuildBestInClassPrintLayoutPlan, layout_quality_report.json |
| Print | Paragraph runt prevention | implemented | Print automation detects paragraph runt risks and enables emergency stretch/final balance controls. | paragraphLayoutRisks, booksetterchapterfinalbalance |
| Print | Short final page improvement | implemented | Short final page risks trigger final-balance commands in print markdown. | printChapterNeedsFinalBalance, booksetterchapterfinalbalance |
| Style/design | Built-in book styles | partial | BookSetter™ exposes 15 style presets today and can add style families without changing export logic. | stylePresets, bookStyleSpecs Need 24+ public-facing style families before this can be called complete. |
| Style/design | Style categories | implemented | Styles are categorized across Trade, Serif, Sans Serif, Script, Poetry, Accessible, Nonfiction, and Reference. | stylePreset.Category |
| Style/design | Whole-book styling | implemented | Style presets map body, heading, chapter, print, and ebook tokens across the full manuscript. | bookStyleSpec, styleSpecFor |
| Style/design | Drop caps | implemented | Drop caps are configurable and automatically disabled where accessibility or style rules reject them. | settings.DropCaps, DisableDropCaps |
| Style/design | Embedded fonts | partial | Pandoc/EPUB and PDF engines can embed available fonts; a formal font-license ledger remains a hardening gate. | pandocEPUBArgs, renderPrintHeaderTex |
| Style/design | Flourishes/custom ornaments | better-than-vellum | BookSetter™ supports custom ornament images, generated ornament systems, chapter ornaments, contents ornaments, and page-bottom ornaments. | OrnamentImage, ChapterOrnament, Artistic Print Studio |
| Style/design | Backgrounds/borders | implemented | Print macros and Artistic Print Studio treatments support borders, background motifs, and title-page ornaments. | ArtisticPrintStudio, renderPrintHeaderTex |
| Style/design | Configurable headings | implemented | Heading scale, style preset, body font, and print section formats are settings-driven. | HeadingScale, PrintSectionFormat |
| Style/design | Configurable first paragraphs | implemented | CSS and print styles remove first-paragraph indents after headings and manage drop cap/no-indent behavior. | renderExportCSSForDetail |
| Style/design | Scene-break styling | implemented | Scene breaks are detected, clarified for page boundaries, and can use textual or custom ornament treatments. | renderPrintChapterOrnaments, booksetterscenebreak |
| Style/design | Verse/poetry styling | implemented | Standalone poems and verse blocks preserve line breaks and use poetry-specific styling. | poetry-spacious, booksetter-verse |
| Style/design | Text-message styling | partial | Text conversation blocks are now detected and reported; dedicated visual bubble rendering is the next UI/render pass. | TEXT_FEATURES.json Need dedicated .booksetter-text-conversation CSS/TeX treatment. |
| Style/design | Written-note styling | partial | Written note blocks are detected and preserved; dedicated note paper styling remains a visual pass. | TEXT_FEATURES.json Need dedicated .booksetter-written-note CSS/TeX treatment. |
| Style/design | Saved styles | partial | Style presets and settings persist per project; named reusable custom styles need a library table/UI. | settings, schema.sql Need user-named style-library persistence. |
| Manuscript/building | Word .docx import | implemented | DOCX text extraction is built into manuscript import. | manuscriptText, extractDocxText |
| Manuscript/building | Chapter detection | implemented | Markdown and plain-text splitters detect chapter-like headings and nested sections. | splitMarkdownManuscript, splitPlainManuscript |
| Manuscript/building | Title info detection | implemented | YAML metadata and manuscript content populate title/subtitle/author defaults. | parseMetadata, importManuscript |
| Manuscript/building | Title page | implemented | Special front matter renderer builds title-page structures and optical print handling. | renderSpecialFrontMatter, RunFrontMatterStudio |
| Manuscript/building | Table of contents | implemented | Generated TOC is included when no explicit Contents element exists; print can use live final-layout TOC. | pandocEPUBArgs --toc, hasExplicitContentsElement |
| Manuscript/building | Copyright page | implemented | Copyright front matter has semantic ebook markup and dedicated print treatment. | renderCopyrightPage, booksetter-copyright-page |
| Manuscript/building | About the Author / Also By / front/back matter | implemented | Elements can be front/chapter/back/poem and edition-specific via include flags. | schema.sql elements.kind, include_ebook/include_print |
| Manuscript/building | Drag-and-drop organization | partial | Elements have stable positions and update APIs; drag gesture polish belongs in the wrapping web UI. | elements.position, elementActions |
| Manuscript/building | Reusable elements | partial | Targeted update flow can add backmatter, but cross-project reusable element libraries need a dedicated table/UI. | targeted_updates.go |
| Manuscript/building | Edition-specific elements | implemented | Every element has include_ebook and include_print flags. | element.IncludeEbook, element.IncludePrint |
| Manuscript/building | Box sets / anthologies / teasers | partial | The semantic element model can represent parts and backmatter teasers; import/build UI needs explicit multi-work workflows. | SemanticBook, publication_bundle_report.json |
| Editing | Built-in text editor | implemented | The web editor edits selected elements and saves directly through element APIs. | web/index.html editor, elementActions |
| Editing | Fix typos inside app | better-than-vellum | Targeted Updates preserve untouched content hashes and expose 30-day free re-export / $5 post-window update policy. | targeted_updates.go, update_export_policy.go |
| Editing | Character formatting | implemented | Markdown preserves character formatting through Pandoc to EPUB/PDF/DOCX/RTF. | pandocMarkdownReader |
| Editing | Spelling/grammar correction | partial | Browser/native spellcheck can work in text areas; a first-class grammar service is not yet implemented. | web editor textareas Need explicit spellcheck/grammar UI. |
| Editing | Smart quote replacement | implemented | Pandoc smart typography is enabled in the Markdown reader. | markdown+smart |
| Editing | Find and replace | implemented | Targeted Updates include find/replace scope and ripple-risk reporting. | targetedUpdatePayload, targeted_updates.go |
| Editing | Dictation | partial | Can rely on OS/browser dictation in textareas; app-native dictation is not implemented. | web editor textareas Need microphone-enabled dictation control if required. |
| Editing | Text-to-speech | partial | Accessible outputs support screen readers; app-native read-aloud controls remain a UI feature gap. | ACCESSIBILITY.md Need browser speech synthesis control. |

## BookSetter™ Advantages

- AI-assisted Master Printer, Artistic Print Studio, visual design director, and candidate-scoring reports go beyond template formatting.
- Targeted Updates are productized with a 30-day free re-export window and $5 update exports after that.
- Daily public-domain sample generation and proof-portal artifacts give buyers visible examples before purchase.
