Indicators: WTF is happening rn?
Turning system behavior into confidence
Indicators Make the Invisible Visible
Indicators in your UI answer the evergreen question: “WTF is happening right now?”
People need to know what is going on. A system that communicates its status with clear indicators feels responsive and trustworthy. A system without indicators will appear confusing and broken.
Indicators translate system behavior into human-understandable signals.
Indicators are components like:
loading states
success messages
error badges
progress markers
status labels
They reduce uncertainty, prevent repeated actions, and keep people oriented inside complex flows.
Good indicators remove guesswork. They are a warm fuzzy blanket that tells the user “don’t worry, something is happening.”
Bad or missing indicators create anxiety, hesitation, and rage-clicking. They make the user feel like they might have done something wrong, or that something is broken.
People already have enough anxiety today, let’s help them out.
Indicators Are Feedback Loops
Indicators are a form of communication between the machine and the user. It tells a person:
An action was received
Something is happening
Something was completed
Something failed
What state the system is currently in
When indicators are clear, users stay in the flow. They feel confidence in the system. However, when they’re vague or missing, users assume the system is broken or that they fucked something up. In fact, many “performance problems” aren’t technical at all, they’re communicative (NOTE: This also happens to typically be the biggest challenge when dealing with people).
Psychologically speaking, indicators are where the system actions becomes visible to the user.
Imagine having a conversation with a person who went completely catatonic between thoughts. The conversation would feel brutal…you wouldn’t want to talk to them anymore.
Latency, failures, retries, background processing, etc. all exist whether users see them or not. Indicators decide whether users experience them as confidence or confusion.
A fast system with poor indicators can feel broken. A slow system with good indicators can feel reliable.
Indicators don’t change performance, but they do define how performance is perceived.
Practical Design Rules
Every action deserves a response
If a user clicks, taps, submits, or triggers a process of some kind - fucking acknowledge it!
Button state changes
Inline loaders
Micro-animations
Status text (“Saving…”, “Saved”)
A lack of indication will be interpreted as failure.
Match indicator strength to action importance
Not all actions deserve the same signal.
Minor changes need subtle indicators
Expensive, irreversible, or destructive actions need explicit confirmation
Over-signaling creates noise. Under-signaling creates doubt. Don’t bring the drama if its not needed, but that doesn’t mean not keeping me informed!
Show state, not just activity
A progress indicator alone says something is happening. A labeled progress indicator says what is happening.
“Uploading file (3 of 5)”
“Processing payment”
“Syncing changes”
Specificity reduces anxiety and prevents repeat actions. Its like having a joint at a party, not strictly necessary, but a lot cooler if you did…
Indicators must resolve
Indicators should clearly transition:
Loading → Success
Processing → Error
Draft → Published
Indicators that never resolve feel broken, even when the system technically works. Nobody likes to be left hanging, uncertain of what happened.
View it in Action:
Why This Matters
Uncertainty kills momentum. Momentum is the lifeblood of your system.
Without indicators:
Users repeat actions
Data gets duplicated
Support tickets spike
Users don’t trust you
With clear indicators:
People move faster
Errors decrease
Systems feel reliable and trustworthy
Indicators don’t just improve usability.
They protect your system from misuse and misunderstanding.
Use This Today
Pick one core workflow and walk through it step by step:
After every user action, is there a visible response?
Can users clearly tell what state the system is in?
Are there moments where users might wonder, “Did that work?”
If the answer is unclear, your indicator strategy is incomplete.
LLM Prompt for Evaluation
You are a senior UX designer specializing in system feedback and interaction design.
Review the following screen or flow and identify all user actions and their corresponding indicators.
For each action, assess whether the indicator clearly communicates:
1. acknowledgment
2. current state
3. resolution
Flag any missing, vague, delayed, or misleading indicators.
Recommend specific improvements that make system status and outcomes immediately clear.
If anything is ambiguous, ask clarifying questions one by one before concluding.
Learn More
About Us
Design Language is a newsletter for all product builders (PMs, Engineers, Founders, etc) who want to improve their design literacy, hone their sense of tase, and improve their craft when building products.
Jeremy Belcher is a 15 year product and design veteran. He has designed UX/UI for products used by tens of millions for brands like Google, Salesforce, Saturday Night Live, DirecTV, BMW, Emirates, Visa and in the past several years has focused on new enterprise workflow products. He runs the product studio Robot Heart, which designs, builds, and validates 0 → 1 B2B workflow tools for teams and founders.
David Issa is a digital strategy and product design leader with over 15 years of experience guiding companies through transformation. He has helped scale products and teams across healthcare, fintech, and enterprise software, translating complex systems into human-centered experiences. David runs a strategic design practice focused on aligning purpose, architecture, and execution—bridging design, AI, and organizational strategy to help teams build with clarity and intent.





![[video-to-gif output image] [video-to-gif output image]](https://substackcdn.com/image/fetch/$s_!rban!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba2e67ce-e46b-46a2-a8f0-678f4a84ec41_800x213.gif)
![[video-to-gif output image] [video-to-gif output image]](https://substackcdn.com/image/fetch/$s_!V-A7!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F065e1fb8-fef1-4314-a8ca-c8b3b88ee6ef_800x236.gif)
![[video-to-gif output image] [video-to-gif output image]](https://substackcdn.com/image/fetch/$s_!xUpL!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c96e11f-d0ce-429e-af69-6a6012312a33_800x236.gif)
![4.mov [video-to-gif output image] 4.mov [video-to-gif output image]](https://substackcdn.com/image/fetch/$s_!cNe8!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7cb9af0-fa86-4b10-9b93-721282ca25c3_800x171.gif)




