Key insights
- Button labels should name the reward, not the mechanic. "Create my free account" feels like a gift; "Submit" feels like a chore — same action, different conversion.
- Turn errors into help. "Invalid input" tells the user nothing; "That email's taken — want to log in?" names the problem and offers the next move.
- Empty states are onboarding, not dead ends. Instead of a blank inbox, show the first step the user can take right now.
- Placeholder text is not a label. It vanishes the moment they start typing, leaving fields unidentified — keep a persistent label above the input.
- Write like a person. No real human says "operation failed" — match the tone a helpful colleague would use.
- Copy carries as much weight as layout: labels, errors, empty states, and tone shape whether the interface feels usable or hostile.
Do / Don't
- Do: Label actions with the reward the user gets ("Create my free account"), not the system verb
- Do: Turn error messages into a next step ("That email's taken — want to log in?")
- Do: Fill empty states with the first useful action, not a blank screen
- Don't: Rely on placeholder text as a stand-in for a persistent field label
- Don't: Ship system-speak like "Invalid input" or "operation failed"