The problem
The client’s 88-slide planning deck held the company’s technical content. All of it had to reach the web intact — and the staff had to be able to edit it themselves.
Decisions
- Content lives in one typed source. Hard-coding drops lines across twelve repeated process pages; opening everything to the CMS would let non-developers wear down the technical text.
- Pages stay statically generated: a CMS edit overwrites one site_content (key, jsonb) record and invalidates only its cache tags.
- Process pages follow the original deck’s order, with figures placed section by section. The gallery was retired; only tabular figures were rebuilt in HTML.
What broke — and the fix
- A one-to-one visual audit of review PDFs against the live site found 10 unapplied changes the DOM audit had missed. Since then, text is checked against the source and changes are checked by eye.
- Vertical rules vanished at some window widths. Not CSS: a will-change compositing layer was snapping to whole pixels. Releasing it after the entrance animation fixed it.
Results
- 617 sentences from 88 slides, 0 missing (three-layer audit)
- 32 routes · 12 process pages · 136 figures · 8 certificates
- Three revision rounds fully applied, 0 residual defects
- Contrast measured: body 8.6:1 · secondary 4.9:1 · accent 9.7:1
- 100 client assets → 76 WebP images, 21.8 MB → 3.7 MB
- 14 responsive cases (7 widths × 2 scales), 0 misses