Key insights
- The Doherty Threshold is 400ms: respond faster and you hold attention, respond slower and users mentally disconnect.
- Response time splits into zones — under 200ms feels instant, 200–400ms is tolerable, and over 400ms starts breaking engagement.
- What matters is perceived speed, not raw speed — the real work can take longer as long as the interface reacts within the threshold.
- Skeleton loading paints placeholder shapes the instant a screen opens, so it never looks frozen while data arrives.
- Optimistic UI updates the screen as if the action already succeeded, then reconciles only if the server rejects it.
- Progress feedback — spinners, progress bars, inline status — keeps an unavoidable wait feeling responsive instead of stalled.
Do / Don't
- Do: Give visible feedback within 400ms of any interaction, even if it's just a skeleton or acknowledgment
- Do: Update the interface optimistically for actions that almost always succeed
- Do: Show progress feedback whenever the real work has to exceed the threshold
- Don't: Leave the screen blank or frozen while data loads in the background
- Don't: Wait for a server round-trip before giving any visual response