How to Write Loading-State Copy That Names What Is Happening
An 8-minute website skill to write loading-state copy that names what is happening. Name the verb and the object. Ban please wait. ChatGPT, Claude, or Gemini. One five-second scan.
Anyone shipping a product can write loading-state copy that names what is happening in 8 minutes: one verb, one object, one honest line. Run it in ChatGPT, Claude, or Gemini before Please wait trains people to stare at a spinner with no job.
Loading-state copy is a status line, not a joke. If the screen only says Loading..., you never named the work. Verb plus object beats a cute spinner caption every time.
This is not empty-state copy when a table is empty. An empty state is zero rows with a next action. This screen already has work in flight. It is not a form error that names the missing field. A form error is a blank box after submit. This is the wait before the result. It is not a micro-confirmation after form submit. A confirmation names the save that finished. This names the job still running. It is not a 404 page with two useful next clicks. A 404 is a missing URL. This is the right URL while the system works.
What you need
The real job name from engineering (what the API or queue is doing), the object the user cares about, ChatGPT, Claude, or Gemini, and eight minutes. A five-second scan test on a phone.
Banned before you start: Please wait, Loading..., Just a sec, Hang tight, funny spinner jokes, fake percent bars, Almost done with no verb, One moment please, Working on it, Magic in progress, and ellipsis poetry that never names the object.
Write loading-state copy that names what is happening
1. Paste the real job. Do not draft Please wait
Ask the engineer what the process is doing in plain words. Saving an invoice. Uploading photos. Building a PDF. If they shrug, write UNKNOWN and stop. Do not invent a friendlier job the backend cannot prove.
Keep the tone adult even if your brand is playful elsewhere. A wait is not the place to debut a mascot bit that delays the truth.
Instruct ChatGPT, Claude, or Gemini: "Do not draft Please wait. Name the verb and the object I paste. If I did not name the job, write UNKNOWN and stop. No Loading. No Just a sec. No Hang tight. No spinner joke. Then stop."
Good: "Saving your invoice." Bad: "Please wait while we do our thing." Thing is fog with manners.
Paste brand voice only as a constraint like "plain, adult, no slang," not as a request for comedy during a save.
2. Force verb plus object on one line
Wire the real process name before you polish adjectives. A witty line on the wrong job is still a lie. Paste the production action into the prompt as ground truth.
One line is the default. A second helper line is allowed only when it adds a real detail the user can check (count, destination, file type). No third line. No essay under the spinner.
Instruct: "Output one status line: present participle verb + the user's object. Examples shape: Saving your invoice. Uploading 12 photos. Building the PDF. No ellipsis. No percent. No Almost done."
Good: "Uploading 12 photos." Bad: "Loading..." Loading is a shrug with three dots.
If engineering cannot name the object, write UNKNOWN. Invented nouns are how people hunt for a file that is not the one on screen.
3. Ban the trap words, then ban the fake progress
Check localization early. If your UI is bilingual, generate both languages with the same verb and object. Do not let one language keep a joke the other language cut.
Align casing with your design system. Sentence case is usually clearer for a status line. Title case makes a wait look like a headline.
Tell the model: "Ban Please wait, Loading..., Just a sec, Hang tight, Almost done, Working on it, Magic in progress, and any funny spinner caption. Ban fake percents unless engineering pastes a real progress value."
Good: "Building the PDF." Bad: "Hang tight — 87% complete" when the bar is a timer costume. Fake percent is a broken promise with a number.
If you have real progress from the API, you may add a short helper: "Uploading photo 4 of 12." Still verb plus object. Still one truth.
4. Cap the stack, then stop the model
Reject any model output that adds a tip carousel, a joke of the day, or a "did you know" panel. Those patterns burn attention while the job finishes.
Hard cap: one status line, optional one helper. No hero. No newsletter gate. No related-posts wall while the invoice saves.
Tell the model: "Output the status line only. If a banned phrase appears, rewrite that line only. Do not add a second joke. Do not invent a percent."
ChatGPT will add a winky spinner caption. Claude will soften into Please hold. Gemini will invent a help article URL you do not have. Cut all three unless you pasted real facts.
5. One human pass as a stranger with five seconds
Have one teammate who did not write the copy do the five-second scan. Authors forgive their own Hang tight. Strangers do not.
Log the final line next to the engineering ticket with the real job name. Ambiguity at handoff is how Saving becomes Loading... in production.
Open the draft on your phone. Count to five. You must know what is happening. If you only see a spinner and a smile, you failed.
Check these traps: Please wait, Loading..., Just a sec, funny spinner jokes, fake percent, Almost done with no verb, Hang tight. Fix the line to verb plus object. Then send edits back: "Replace only the words I changed. Do not re-expand. Do not add Please wait."
One pass. Ship as draft copy to engineering. If Please wait still sits under the spinner, you never wrote loading-state copy. Stop.
What good looks like
Trigger: You are about to ship Please wait, Loading..., or a joke spinner because the animation looks polished.
Input: Real job name from engineering, the user's object, ChatGPT/Claude/Gemini, phone scan.
Output: One status line with verb plus object. Optional one helper. No Please wait. No fake percent.
Stop: After one five-second stranger scan. No ellipsis poetry. No Hang tight.
Takeaways
- Name the verb and the object. Then stop.
- Please wait and Loading... are fog. Verb plus object is the job.
- UNKNOWN if engineering cannot name the work. Do not invent it.
- Jokes are optional decoration. Naming the wait is the job.
Frequently Asked Questions
Can I keep a funny spinner if the status line names the job?
Yes, as decoration only. If the joke replaces the verb and object, cut the joke. The line does the work.
What if the wait is under one second?
You may skip the line for sub-second flashes. When the spinner is visible long enough to notice, name the job. Silent spinners feel broken.
Should I use ChatGPT, Claude, or Gemini for this?
Any of the three works. Claude is strict with the one-line cap. ChatGPT is fast at verbs. Gemini is fine. All three will write Please wait unless you ban it.
How is this different from empty-state, form-error, confirmation, or 404 copy?
Empty state is zero rows. Form error is a missing field. Confirmation names a finished save. A 404 is a missing URL. Loading-state copy names work still in flight.
Can I show a percent complete?
Only if engineering pastes a real progress value. A fake percent that jumps or stalls is worse than no percent. Prefer verb plus object, then a real count if you have one.