Design & UX · master area
Content Design
Every label, error, empty state, and confirmation — written in the named person's domain language, not the engineer's. The fastest-degrading craft and the one the helpdesk reads back to you.
Owners: Designer, PO Phase it lives in: How We Build (Volume IV) The corpus principle this enacts: The code speaks the brief.
Where it lives in the chain
- How We Build · Domain Language and Composition — the canon (the brief's vocabulary must survive into the surface)
- How We Build · Design Execution — where copy is finalised alongside fidelity
How to do this
- Principle — Person-first
- Clinic — A retro that listed — where "improve copy" becomes a non-change
What good output looks like
Every visible string is named with the same word the named person used in observation. Gal said "exam"; the UI says "exam," not "submission." The empty state explains what to do, not what's missing. The error message says what happened, what to try, who to ask — "We couldn't reach the grading service. Try again in 30 seconds. If it persists, ask Esti to check the logs." — not "Error 503." The success message names the thing that succeeded; it doesn't say "Done!"
Content design is the craft helpdesk reads back to you. A spike in "how do I" tickets after release is usually content design — not a missing feature. The product is technically correct and experientially confusing. Fix the words, not the form.
Related crafts
- Domain Immersion — where the vocabulary is captured
- Domain Language in Code — where the same words travel into the codebase
- User Flow Design — every node needs its copy