Write the copy for every state of a screen
Write the empty, loading, error, success and button text for one screen, with each error saying what to do next.
by Appndo
Tested on GPT-6.1 Sol, Claude Opus 5.5, Gemini 3.8 Flash · Verified Nov 2, 2026
The prompt
Write the interface copy for every state of this screen.
The screen and what users do on it:
{{screen}}
Product voice and any length limits:
{{voice}}
1. First list the states this screen can be in: first-time empty, loading, each error that can happen, success, and any permission or plan limit. Add a state I didn't mention only when what I described implies it, and mark it as added. Don't add features I didn't describe, such as search, filters or anything that happens automatically.
2. For each state write a heading if it needs one, one or two lines of body text, and the button or link text.
3. Every error says what happened in plain words and what the user can do next. No error codes, no blaming the user, no "Oops".
4. Buttons start with a verb and say what happens ("Save changes", not "Submit"). Use the same word for the same action in every state.
5. Stay within the limits I gave and show the character count next to each line that has a limit. With no limits given, keep headings under 40 characters and body text under 120.
6. End with the terms you used for key things (for example "project", not "workspace") so the rest of the product can match.
Use only facts about the product that I gave you. Where a message needs a fact I didn't give (a limit, a time, a contact), put it in [brackets] for me to fill.How to use it
Describe one screen: what the user is trying to do, what it shows, and what can go wrong (network, permissions, plan limits, bad input). Add notes on your voice and any character limits from the design. Fill in the [bracketed] facts before the copy goes to design.
Example
Inputs
- screen
- Upload page in a client portal where an accountant's clients upload receipts and bank statements (PDF, JPG or PNG, up to 25 MB each). It lists uploaded files with their date and a status set by the accountant: Received, or Needs a clearer copy. Things that go wrong: file too big, wrong file type, the upload drops on a weak mobile connection, and the accountant has closed the year so uploads for it are locked.
- voice
- Calm and plain, for small business owners who aren't technical. Mobile first. Headings at most 32 characters, body text at most 90.
Output
States:
- First-time empty
- Loading the file list
- Uploading — added: implied by the upload action
- Upload successful, with files listed
- File too big
- Wrong file type
- Upload interrupted by a weak connection
- Needs a clearer copy — added: the accountant’s status requires a next step
- Year closed — uploads locked; this is the permission limit described
No plan limit was described.
Counts include spaces and punctuation. Headings and body lines show character counts; buttons have no specified limit.
1. First-time empty
Heading: Upload files (12) Body: “Add receipts and bank statements.” (33) Body: “PDF, JPG or PNG. Up to 25 MB each.” (34) Button: Upload files
2. Loading the file list
Body: “Loading files…” (14) Button: None needed.
3. Uploading
Body: “Uploading file…” (15) Button: None needed.
4. Upload successful
Heading: File uploaded (13) Body: “Your file is now listed below.” (29) Button: Upload files
For each listed file, show its filename, date and accountant-set status:
- Date label: “Upload date” (11)
- Status: “Received” (8) or “Needs a clearer copy” (20)
Show the status set by the accountant; upload success alone does not establish “Received”.
5. File too big
Heading: File is too big (15) Body: “This file is over 25 MB. Upload a copy that is 25 MB or smaller.” (61) Button: Upload files
6. Wrong file type
Heading: File type not supported (23) Body: “This file isn’t a PDF, JPG or PNG. Upload a copy in one of these formats.” (70) Button: Upload files
7. Upload interrupted
Heading: Upload interrupted (18) Body: “The connection dropped before the upload finished.” (49) Body: “When you have a stronger connection, upload the file again.” (57) Button: Upload files
8. Needs a clearer copy
Use this beside the affected file.
Status: Needs a clearer copy (20) Body: “Your accountant needs a clearer copy of this file. Upload a clearer photo or PDF.” (79) Button: Upload files
9. Year closed
Heading: Uploads are closed (18) Body: “Your accountant has closed this year. You can’t upload files for it.” (67) Body: “Contact your accountant to ask how to provide these files.” (56) Button: None; no contact action or reopening process was described.
Terms to use consistently
- Files — the items clients upload
- Receipts and bank statements — the document types
- Upload files — the upload action
- Upload date — the date shown for each file
- Received and Needs a clearer copy — the accountant-set statuses
- Accountant — the person reviewing files
- Year — the period that can be closed
One real run with the example above. Results vary between runs and models.