How I turned a prose UX writing guide into a structured, machine-readable content system inside a product design system.

<aside> 🧭

At a glance

The problem


The Product Content Guide was a comprehensive, well-written Notion document covering voice, tone, microcopy patterns, vocabulary, localization, and governance. It served writers well. But as a document, it had reached three limits:

The approach: content as infrastructure


Rather than copy the guide into the design system, I treated content as typed, addressable, version-controlled infrastructure. The core move was to split content by type.

Surface Role Consumer
Design system content pages Canonical, human-authored standards People
Content Library Codified mirror: the same rules and patterns as structured rows with stable slugs Machines (codegen, linters, agents)
Product Content Guide Frozen archive: the original prose, migrated section by section Historical reference

One principle holds the system together: every piece of content has exactly one canonical home. Nothing is maintained in two places.

The process: a repeatable loop


I ran the migration as a single loop, applied to every section in turn.

  1. Audit. Inventory the Library first, including a duplicate-slug scan run before and after each change, so IDs always stay unique.
  2. Rehome. Move codifiable content into structured entries and narrative onto its canonical page.