On the craft

How I think about writing for products.

Six principles. Four side-by-side rewrites from real work. Cut from longer pieces — like the writing itself.

Principles

Six things I believe about UX writing.

01

Write at design review, not after launch.

The cheapest place to fix bad copy is in Figma, before anyone has shipped it. The most expensive is after a release note has gone out. I'd rather argue about a button label early than rewrite a help article late.

02

Specific beats clever.

"Something went wrong" tells the user nothing. "We couldn't reach your payment provider — try again, or use a different card" tells them what happened, what to do, and what's available. Clever taglines fade. Specific copy keeps working.

03

The user is doing a job. Get out of the way.

Onboarding isn't a tour — it's the first 90 seconds of someone trying to do work. Cut motivational language. Cut "Welcome aboard!" Tell them where they are, what they can do here, and how to do the thing they came for.

04

Voice is a system, not a vibe.

"Friendly but professional" isn't a voice — it's a wish. A voice is a set of rules: contractions yes, exclamation marks no, second person always, jargon only when it's the user's jargon. Document it. Reuse it. Argue about it.

05

Microcopy is product, not decoration.

Empty states, error messages, tooltips, confirmations — these aren't garnish. They're where users meet the product when something is uncertain. Treat them with the same rigor as the happy path.

06

Cut your own copy first.

If you can't kill your own line, you can't be trusted to kill someone else's. Most UX writing improves when you remove the second sentence.

Before / after

A few small rewrites that moved the needle.

Empty state · HR365 expense module
When the expense list is empty
Before
No data found
There are no records to display at this time. Please try again later or contact your administrator for assistance.
After
No expenses yet
Submit your first expense to see it here. You'll need a receipt and an approver from your team.
The "before" describes a database state. The "after" tells a person what to do next.
Error message · TCS Microsoft 365 migration
When a user's mailbox migration fails
Before
Migration error: ECODE_4017
Your migration could not be completed. Please raise a ticket with IT helpdesk for further assistance.
After
Your mailbox didn't move yet — your old mail is safe.
This usually clears up within a few hours. If your mail still isn't showing in Outlook by tomorrow, raise a ticket and mention error 4017.
In a 450,000-user migration, the most important word in an error message is "safe."
Confirmation dialog · HR365 BACS
When the user is about to delete a draft
Before
Are you sure?
This action cannot be undone. Click OK to continue.
After
Delete this draft?
It won't go to trash — once deleted, you'll need to start over.

Buttons: Keep draft · Delete
"Are you sure?" is the question. The answer needs the consequence and the action verbs on the buttons themselves.
Onboarding tooltip · Trilith
First-time user lands on the dashboard
Before
Welcome to Trilith! 🎉
We're so excited to have you on board. Let's take a quick tour to help you get started on your journey with us.
After
Start here.
Add your first candidate, then invite a teammate to review. Most teams have their first shortlist in under 10 minutes.
No one wants a journey. They want their first shortlist.