By SpiderHunts Technologies · · 10 min read
An AI feature can be technically brilliant and still fail because the experience around it feels unpredictable or untrustworthy. AI products break the usual rules of software design: outputs vary, responses take seconds, and the model is sometimes confidently wrong. These ten practices, which we apply when designing AI products and integrations for clients across the USA, UK, Canada, Europe and South Africa, turn that uncertainty into a great experience.
1. Set expectations before the first interaction
Tell users what the AI can do, what it can't, and what good input looks like. A short example prompt or a clear placeholder reduces the "blank box" anxiety and prevents the disappointment of asking for something out of scope.
2. Stream responses and show progress
Model calls take time. Stream the answer token by token so users see progress instantly, and show a skeleton or status line for anything over ~300ms. Better still, narrate the work, "searching your documents…", "drafting a reply…", so the wait feels purposeful instead of broken.
3. Treat output as a draft, not a verdict
Make AI output editable, regenerable and dismissable. The single biggest trust-builder is letting the user accept, tweak or reject what the AI produced. Editable output turns an occasionally-wrong model into a dependable assistant.
4. Show your work: sources and citations
Where the AI draws on documents or data, show the sources. Citations let users verify, build confidence, and catch hallucinations. "Here's the answer, and here's where it came from" beats a confident answer with no provenance every time.
5. Communicate uncertainty honestly
When the model is unsure, say so. A hedge ("I'm not certain, but…") or a confidence cue is more trustworthy than false precision. Designing for honest uncertainty prevents users from over-relying on the AI in exactly the cases where it's most likely wrong.
6. Keep the human in control
The user, not the model, should make consequential decisions. Surface AI suggestions, but let people approve, override or undo. For anything that sends, deletes, charges or publishes, require explicit confirmation and make the action reversible where you can.
7. Design the error and empty states first
AI fails in new ways: refusals, timeouts, rate limits, off-topic answers. Design those states deliberately, a clear message, a retry, and a path forward, instead of leaving a spinner that never resolves. Good error UX is where AI products win or lose trust.
8. Offer guardrails and easy correction
Give users quick ways to steer: regenerate, "make it shorter", thumbs up/down, or a way to add context. Cheap correction loops mean a near-miss becomes a hit in one click rather than an abandonment.
9. Don't sacrifice accessibility or performance
AI is a feature inside an interface, and that interface still must meet the basics: 4.5:1 text contrast, full keyboard navigation, screen-reader support, visible focus states, reduced-motion support, and fast, layout-stable rendering. A clever AI feature that's inaccessible is a broken feature.
10. Be transparent that it's AI
Never disguise AI as a human, and don't hide that responses are generated. Clear labelling is increasingly an expectation (and in some places a requirement), and honesty here is the foundation everything else is built on. For chat specifically, see our conversational UI guide.