Add post: How I over-engineered my book - #1949
Open
benbalter wants to merge 1 commit into
Open
Conversation
Walks through building the book as a software project: an EPUB is a zip of XHTML and CSS, so the book became a build target rather than a document. Covers the CSS-to-CSS transpiler that targets e-readers, the Kindle transparent-PNG bug, the prose linters that block CI, and an honest accounting of what the tooling cost (about one commit in five). Verified before commit: Vale (0 errors), markdownlint, remark, and the prose-quality + front-matter suites (1,332 passing). Astro build renders all three :quote directives to proper anchors. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
src/content/posts/2026-08-03-how-i-over-engineered-my-book.md.The post promised in the Overcommitted write-up ("a rabbit hole that's getting its own post soon").
What it covers
Framed for a developer who knows nothing about book publishing. The unlock is stated early — an EPUB is a zip archive of XHTML and CSS, so the book is a build target, not a document — and everything else follows from that:
.tldrruleEnds on the archive sweep that surfaced typos live since 2011, which sets up a follow-up post on accessibility.
Verification
vale --minAlertLevel=errormarkdownlint-cli2remark(report-only)prose-quality+front-matterastro build:quotedirectives resolve toid="quote-*"anchorsFrontmatter uses
title/description/tldrper the collection schema. NohideBookCta, so the standard book CTA appends.Notes for review
https://ben.balter.com/resume.pdf) rather than relative. Theprose-qualitylink resolver only checks.md/.mdx/.html, so it can't resolve Astro pages — both/resume.pdfand/resume/fail it. This matches the existing convention in the archive, which also links the résumé absolutely. Post links stay relative, since those resolve fine.astro buildfails at theastro:build:donehook because astro-pdf can't launch Chromium in this environment. Unrelated to the post — page HTML generates fine, and CI caches its own Chrome.🤖 Generated with Claude Code