3 ways to handle LLM latency without spinners
A spinner tells the user one thing: wait. For a 6-second AI response, that's not enough.
Three patterns I reach for instead:
- Stream the answer. Showing text as it arrives turns waiting into reading. It's the default in chat for a reason, but it works in summaries, tables and forms too.
- Show the work. When the AI is doing steps (searching, reading files, calling tools), name them as they happen. "Reading 3 documents" is more reassuring than any animation, and it lets users catch a wrong direction early.
- Let them leave. For anything long (a report, a batch job), move it to the background and notify when it's done. Don't hold the screen hostage.
The common thread: latency isn't only a performance problem. It's a trust problem. People tolerate waiting when they understand what's happening.
I learned this outside AI. On Pro Telhanorte, a procurement app for contractors, deliveries used to show a single "delivery days" estimate. After a critique with Sales and Logistics, we replaced it with status cards and a split-delivery view showing what ships from which warehouse. The wait was the same. What changed was that contractors could plan around it. AI responses need exactly that.
Which of these do you see done badly most often?