AI copy for products: microcopy, onboarding, and empty states that feel human
Reusable prompt scaffolds for product voice, plus the tooling that keeps Figma strings and production strings identical.





You can spot AI-written product copy instantly, and it's always the same tells: "seamlessly," "effortlessly," "unlock," an em dash where a full stop belonged, and a cheerful tone applied uniformly to a success message and a failed payment.
None of that is a model limitation. It's a briefing failure. Here's how to fix it.
The context block
The single change that improves AI copy more than everything else combined: stop writing prompts and start writing a reusable context block.
Keep this in a file. Paste it at the top of every session.
Product: [what it does, in one sentence a stranger would understand] Audience: [who they are, what they already know, what they're anxious about] Voice: [three adjectives, each with a one-line explanation of what it means and what it doesn't] We never say: [your banned list, e.g. "seamless," "effortless," "unlock," "delight," "supercharge," "revolutionary"] We always: [conventions, e.g. sentence case, no exclamation marks, second person, contractions allowed] Reference: [two or three strings from your product that are exactly right, and why]
That last line does the heaviest lifting. Models match patterns far better than they follow adjectives. Three real examples of your voice outperform a paragraph describing it.
Microcopy: the rule of the smallest true thing
Good microcopy says the smallest true thing that lets someone act. Most AI microcopy says a slightly larger, friendlier thing that doesn't.
Buttons. Ask for the verb the user would use, not the verb your database uses. "Save changes" not "Submit." "Delete forever" not "Confirm." A useful prompt: "Give me ten button labels for this action. Rank them by how clearly a first-time user would predict what happens next."
Error messages. Three parts: what happened, why, what to do now. Models default to writing part one and apologising instead of parts two and three. Say so explicitly: "Write the error. State what happened, the likely cause, and the single next action. No apology. Under 15 words."
Empty states. The best empty states teach. Prompt for the job, not the copy: "This list is empty because the user hasn't created their first project. Write copy that explains what a project is for and gives them one obvious action. Don't be cute."
Onboarding: write the flow, not the screens
Onboarding copy fails when it's written screen by screen, because each screen ends up re-explaining the product from scratch.
Give the model the whole flow at once and ask for a copy arc: what the user knows at each step, what each screen adds, and what's deliberately deferred. Then generate the strings against that arc.
A prompt that works:
Here are the five onboarding steps. For each, tell me: what the user already understands at this point, the single new idea this step introduces, and what we're deliberately not explaining yet. Then write the headline and body for each step, under 20 words each. The arc should build, so no step should re-explain a previous one.
The output of the first half is more valuable than the second. You'll often rewrite the strings and keep the arc.
Keeping strings in sync
Writing the copy is half the problem. The other half is that the string in Figma, the string in the codebase, and the string a user sees are three different strings by the time you ship.
Ditto is the tool built for exactly this. Copy lives in one place, syncs into Figma, and exports for developers. It's unglamorous and it eliminates an entire recurring category of bug.
Notion or a shared doc works for small teams, as long as there's one canonical location and everyone knows which it is.
For localisation, remember that generated copy is often 30 to 40% longer than necessary, and every extra word costs you in every language. Ask for a tighter version before you send anything to translation.
Tools worth using
Claude is the strongest general-purpose option for editorial work: holding a long context block, matching a voice, and pushing back when asked.
Writer is the enterprise answer: enforced style guides and terminology across a whole organisation, with checks built into the tools people already write in.
Grammarly still earns its place for the mechanical layer, particularly with a custom style guide configured.
Jasper is oriented toward marketing rather than product copy, which is a real distinction. Marketing copy persuades, product copy instructs, and a tool tuned for the first will over-write the second.
The prompts worth saving
Four that earn their place in a snippet manager:
Tighten. "Cut this by 40% without losing any information the user needs to act. Show me what you removed and why it was safe to remove."
Voice-check. "Here are five strings from our product that are exactly right. Rewrite this new string so it belongs with them. Explain which specific pattern you matched."
Failure-check. "Where would a first-time user misread this? Where would an anxious user assume the worst? Give me the three most likely misreadings."
De-slop. "Rewrite this without any of the following: seamless, effortless, unlock, delight, supercharge, elevate, revolutionary, game-changing, powerful. Keep every concrete fact."
What to write yourself
The first version of anything that carries emotional weight: a cancellation flow, a data-loss warning, an apology after an outage. Models produce a reasonable version of these, and reasonable is precisely what people distrust when they're frustrated.
Also: anything funny. AI humour in product copy is uniformly a bit sad. Write your own jokes or don't make any.
More in the product copy & microcopy list.