What to show while the model is working

A spinner tells people to wait. It doesn’t tell them whether to keep waiting, and that is the question they have.

By

Nadia Kessler

·

2 min read

A spinner answers one question: is something happening? When the answer starts arriving quickly, that’s enough. When the first words take a long time, or the model works for a while with nothing on screen, people start asking different questions. Is it still working? Is it working on the right thing? Should I wait or try again?

Language models make this common. Some requests come back right away, some take long enough that people switch tabs, and the same request can do both on different days.

In cohorts we watch people wait on real requests. For a short one, a spinner is fine. Past that, here is what we teach.

Show what it actually did. If the feature retrieves documents before answering, show the ones it retrieved as soon as retrieval finishes. People can see that it’s looking in the wrong place and stop before the answer is written. Show a step only when it’s a real event, like a search that finished or a tool that ran.

Stream when the answer can be read in parts. A long answer that appears as it’s written lets people start reading early. It helps less when the opening is filler, or when the model works silently and then produces everything at once. For short results like a date or a category, show the finished result.

Offer a way out once the wait runs long. Stop should stop the interface right away, even if the request finishes in the background. Editing is for a request that went wrong; trying again is for an answer that did. A two-second request doesn’t need any of them.

Don’t fake progress. A progress bar that moves on a timer teaches people that the bar means nothing. If you can’t measure progress, don’t invent steps. Show something true, like text arriving or the last thing that finished.

Decide what to keep when a response stops. If a response stops partway, keep what arrived only if it still reads as a usable draft. Cut-off code, broken structured data, or advice that changes meaning without its last sentence should go. Either way, say that it stopped, and offer to try again.

Most of this is product work, but it isn’t free: streaming, a real stop, and keeping partial results all take engineering time. It starts with someone on the team sitting through slow requests with the interface open.

Get cohort dates by email

One email when enrollment opens for each program, and an occasional essay from the journal.

Seamful

A small school for designing AI products. Taught from Oakland, California.

© 2026 Seamful School, LLC

Create a free website with Framer, the website builder loved by startups, designers and agencies.