Releases: jlmiles4/react-pdf-gen
Release list
v1.3.4
v1.3.3
Repository hardening and publishing cleanup.
- Added CI and automated PDF release workflows.
- Enabled security reporting, branch protection, and Dependabot security updates.
- Corrected repository licensing metadata, author aliases, setup guidance, and stale AI examples.
- Added working external links throughout the 78-page PDF.
Full Changelog: v1.3.2...v1.3.3
v1.3.2 — Atomic PDF promotion
Patch release hardening the build against leaving a bad deliverable behind.
The problem. Both render passes wrote straight onto output/react-pdf-ai-builders-guide.pdf, the tracked, shipped book. Every validation runs after that write — the TOC ambiguity and missing-chapter checks, the pass-1/pass-2 convergence check, and the uniform-LETTER page-size check. So any failing guard exited 1 having already replaced the shipped book with the build it had just rejected. An interrupt mid-render left a truncated file. Recovery meant a manual git restore, and the documented habit of diffing extracted text before committing would show a real diff in that case — reading as a legitimate content change rather than a rejected build.
The fix. Both passes now render to output/.build.tmp.pdf and every guard inspects that file. Only a fully validated PDF is renamed into place; the rename happens within the same directory, so it is atomic. The deliverable is either the previous good build or the new validated one, never an intermediate. A process-exit handler removes the temp file, covering both the guards that call process.exit directly and interrupts.
Verified by rendering a deliberately non-LETTER page: the size guard fails, the build exits 1, and the tracked PDF is byte-identical to the previous good build with a clean working tree.
No content changes — the book itself is unchanged from v1.3.0.
v1.3.1 — Revert to a single MIT license
Patch release correcting the licensing change shipped in v1.3.0.
The entire repository is MIT again — including the book PDF, the prose in src/pages/ and content/, and the starter pack in templates/. The book and pack are intended to be freely redistributable, so the code/content split introduced in v1.3.0 has been reverted and LICENSE-CONTENT removed. LICENSE, README.md, and NOTICE return to their pre-v1.3.0 wording.
Bundled third-party assets (Inter, react-icons, Lucide, upstream-derived react-pdf notes) keep their own licenses — see NOTICE.
No code, content, or build changes. Everything else in v1.3.0 — the PDF outline, the markdown parser fixes, and the build-integrity guards — is unaffected and still applies.
v1.3.0 — PDF outline, parser fixes, build guards, dual license
Important
The licensing section below is superseded. The dual-license split described here was reverted in v1.3.1 — the entire repository, including the book and the starter pack, is MIT. Everything else in this release still applies.
Reader-facing
- The PDF now has a navigable outline. Each chapter divider emits a bookmark, so readers get a working sidebar in every PDF viewer. The document also declares
language="en-US"(/Lang). - Starter pack fixes. The gradient recipe rendered a flat fill — it passed pixel coordinates while the renderer defaults
gradientUnitstoobjectBoundingBox, where those values are fractions of the shape's box. The flow-diagram arrow fell back to built-in Helvetica, whose encoding has no→. The pull quote asked for italic at weight 600 when only 400-italic is registered. - Starter pack now stands alone. Every page snippet imported named styles from
src/styles/shared.ts, which no template defined — that step now exists, covering all 18 keys. Added the missingtsconfig.jsonand atypecheckscript.
Correctness
parseMarkdowncould hang forever. A marker followed by a tab (-\titem,#\tTitle) reached a branch that consumed nothing and never advanced the loop index — the build spun with no error and no output. Fixed, with regression coverage.- Silent markdown data loss. Text on a callout marker line (
> [!TIP] Run this.) was discarded, rendering an empty box. An unpaired**closed on a**inside a later code span, swallowing it and leaking literal backticks into the PDF. CRLF input leaked\rinto code blocks. Frontmatter stripping ended early on a---inside a quoted YAML value. - Stale-registry builds.
tsx src/build.tsxrendered whatever registry was on disk, silently dropping newly added pages while every guard still passed.buildPdf()now syncs before importing the registry. - Duplicate page prefixes. Two files sharing an
NN-prefix in one chapter fell through to an alphabetical tie-break, so the number no longer decided book order.syncnow rejects this; two colliding folders were renumbered (book order unchanged).
Licensing — please read
The repository is now dual-licensed. Previously an unqualified MIT license covered everything, including the finished book and the starter pack, which granted anyone the right to resell them.
- LICENSE — MIT, for the build system, component library, design tokens,
scripts/, anddocs/. Unchanged terms, explicit scope. - LICENSE-CONTENT — all rights reserved, for the book PDF, the prose in
src/pages/,content/, andtemplates/. Readers keep the right to use the prompts and code patterns in their own commercial projects without attribution; redistributing or reselling the book or pack itself is not permitted.
This applies going forward and does not retract the MIT grant for versions already published under it.
Also
Documentation accuracy pass (stale API snippet, two chapter-attribution errors, NOTICE over-claiming four unused icons, docs/README.md deduplicated against the root README), and a .mailmap unifying three historical author identities.
Full changelog: v1.2.0...v1.3.0
v1.2.0 — Seven new content pages (78 total), accuracy fixes
Backfilled release for the existing v1.2.0 tag, which was pushed without a
corresponding GitHub release.
- Seven new content pages, bringing the book to 78 pages.
- Content-gap and accuracy fixes across existing chapters.
- Sequential page renumbering.
- Parser warning cleanup and removal of a phantom Helvetica reference.
See the commit range for detail: v1.1.0...v1.2.0.
v1.1.0 — Hardened build, deduplicated design system
Maintenance release from a full repo audit. No rendered page changed — all 71 pages verified byte-identical to v1.0.0 output; this release hardens the pipeline and cleans up internals and docs.
Build & tooling
- The two-pass TOC build now verifies its core invariant: chapter positions are re-extracted from the pass-2 PDF and the build fails if any shifted. Ambiguous chapter markers (a standalone "CHAPTER NN" line on more than one page) fail the build; stray markers warn;
toc-positions.jsonis written only after validation. - Sync fails loudly on empty chrome folders and on two manifest chapters sharing a directory; malformed
toc-positions.jsonwarns instead of being silently ignored. - Fonts register via
Document.tsx, so any entry point that renders the book gets them;export-pages.shworks from any directory.
Design system
- TipBox/WarningBox/InfoBox collapsed to one base + style factory; semantic colors are palette references (no re-typed hexes); new
fontScale.chromeLabeltoken ends chrome borrowing code typography. - Consistent
wrapAPI across Table/BulletList/CodeBlock; IconList gains afeaturevariant (now used on the Ch10 adapter page); markdown parser and icon adapter warn on unsupported input instead of failing silently.
Docs & starter templates
- Fixed stale claims (
output/gitignore status, sync description, troubleshooting example), documented all new build guards and component APIs, and resolved the starter-packfontWeightcontradictions.
Full details in the commit history: 5f63b5e…dce045b.
v1.0.0 — React-PDF + AI: The Builder's Guide to Premium PDF Generation
The 1.0 launch of React-PDF + AI: The Builder's Guide to Premium PDF Generation — a ~71-page premium ebook on producing high-quality PDFs with @react-pdf/renderer and AI coding agents.
📕 Download
The finished book is attached below as ebook.pdf.
Build it yourself
pnpm install
pnpm build # renders output/ebook.pdf
pnpm pipeline # also exports per-page PNGs for visual reviewWhat's inside
12 chapters across Foundations, Design System, Craft, and Shipping: react-pdf fundamentals, AI-friendly project architecture, specifying a design language, tokenization and context windows, avoiding AI slop, design challenges and solutions, icons over emojis, AI visual analysis, premium deliverables and recipes, troubleshooting, and Markdown automation.
The repo is also a working reference implementation — every pattern in the book is demonstrated in src/ (design tokens, shared components, directory-based page layout, manifest-driven assembly).
Source is MIT-licensed; bundled third-party assets (the Inter font, react-icons, Lucide) retain their own licenses — see NOTICE.