GetPaidX docs

The end-user manual for public and signed-in product features.

Search docs

Keyword search across docs titles, summaries, headings, and curated keywords.

Workspaces and ArtifactsUpdated 2026-09-01

Professional Book Workspace: Markdown, Paged.js, and Tagged PDF

How the large-book template organizes ordered sources, performs frozen offline browser pagination, checks its tagged PDF, and publishes a reader plus edition.

Professional Book Workspace: Markdown, Paged.js, and Tagged PDF

When to use this template

Open /check-ins/new and choose Create a book to create a private normal draft with Professional Book - Markdown/Paged PDF and the publisher pool already selected. Use it for a large source-first book with frontmatter, chapters, appendices, backmatter, browser-native mathematics, a local reader, and a tagged PDF. For an existing post, select the same template from the Workspace tab. Choose the separately labeled Technical Book - Markdown/LaTeX PDF template when a conventional academic LaTeX toolchain is the primary requirement.

Both templates attach to normal GetPaidX posts. They do not create a separate account or post kind, and they reuse the same workspace, snapshot, pricing, artifact-access, and publication controls.

Source contract

book.json owns title/edition metadata, exact source order, license, and output paths. Canonical content is organized under:

  • frontmatter/;
  • chapters/;
  • appendices/;
  • references/;
  • CREDITS.md and LICENSE.md;
  • styles/ and reviewed build scripts.

Every source begins with a stable HTML anchor and appears once in book.json.sources. Generated .publisher-data/, build/, artifacts/, and node_modules/ content is disposable and must not be edited as manuscript source.

Frozen offline runtime

The template declares pnpm 11.16 and requires its reviewed pnpm-lock.yaml. The publisher controller seeds a private writable package store, performs a frozen offline install, and links generated dependencies from the private runtime cache. Normal builds make no external browser request.

The publisher image pins Node, Playwright/Chromium, qpdf, Poppler, and open fonts. A bounded per-template install/build budget permits large pagination without making controller execution unlimited.

Validate, build, and preview

Run:

pnpm run validate
pnpm run build
pnpm run check:pdf

Validation checks manifest/source order, stable anchors, links, active HTML, remote images, headings, KaTeX, rights, and the lock contract. Build deterministically assembles Markdown, creates the local reader, paginates source sections, exports a tagged US Letter PDF, fixes metadata, checks qpdf/Poppler/text/fonts, and atomically replaces the curated site only after every gate passes. PDF text checks follow your current source headings and source count. The 4–2,000-page check is a guardrail, not a tested capacity promise; large books still need resource, time, and visual checks. The PDF embeds its fonts; browser reader pagination may vary with the reader's installed fonts.

pnpm run dev watches canonical inputs, serializes rebuilds, and preserves the last successful site after a failed edit. The authorized preview exposes bounded status and log endpoints.

Publication output

Only artifacts/site/ is published:

OutputPurpose
index.htmlEdition landing page and PDF preview
book.pdfTagged, metadata-fixed downloadable edition
reader/Local browser-native Paged.js reader and fonts

Before publication, inspect the title, contents, every chapter/appendix start, math, tables, code, bibliography, credits, license, and page numbers. Save a workspace snapshot, publish the site, and confirm both the anonymous landing/PDF and reader/index.html work under the stable /s/{shareId}/ prefix. Then confirm artifact/workspace purchase guards match the offer.

Add a narrated presentation

The Professional Book + Narrated Presentations template includes an optional companion workflow in a media-capable Publisher workspace. Your book stays the source of truth. Select a short section, review the slide brief and narration, and use supplied or retained audio; this MVP does not generate new AI speech. Start with node scripts/presentations.mjs help in the owner terminal or ask the post's Agent to follow presentations/README.md.

After inspecting the finished picture and sound, publish the presentation privately to the post. Its Presentations section lets you preview it or explicitly add it to the post's materials under the existing access policy. An existing H.264/AAC MP4 can also be added there directly. Large uploads show their checking status and can finish after you leave the page.

During a Live Session, choose Source → Presentation, select a ready video, preview it privately, then present it. Play/Pause, Restart and the timeline control shared playback; Camera returns to the live camera view. Your camera/microphone controls remain independent, and conversation and checkout stay connected. Audience members control their own mute, captions and supported full-screen view. They receive the whole viewing video and can retain it, so use an excerpt when you intend to share a preview.

Publish wanted delivery/source files before stopping the workspace: large render intermediates use temporary storage. Saved book source, recipes and the publication receipt survive; node scripts/presentations.mjs restore <asset-id> retrieves committed editable media into temporary working storage when needed. Regeneration archives and clean masters remain private to the owner. Live admission does not grant book, workspace or lasting on-demand rights.

Common problems

SymptomWhat to check
Source is absent from the bookAdd it once to book.json.sources
Link fails validationPreserve the target's stable anchor and update the reference
Math reports an errorUse KaTeX-supported syntax outside code spans
Runtime tries the networkConfirm the publisher pool and required pnpm lock are selected
Preview keeps the old editionOpen /__book/status and the bounded log, then fix the failed source/build gate
PDF is rejectedCheck metadata, tagging, page size, embedded fonts, blank pages, and forbidden render text

Related docs