Learning on Web Dev Open is free for all.

AI-Native Products > Streaming, and designing for wrongnessThe loading state that lies
Phase 08Streaming, and designing for wrongness394 of 434

The loading state that lies

A spinner tells the user nothing and a fake progress bar tells them something untrue. Show the work instead.

Concept12 minAI pair

Streamed text is its own progress indicator, which is most of why streaming won. For anything that cannot stream, a retrieval step, a tool call, a multi-stage pipeline, the honest move is to name the stage rather than animate a lie. Users tolerate slowness they can understand far better than fast operations they cannot see.

Streaming is not always the right answer. If the output is a structured object the interface has to parse, or a piece of code that is nonsense until complete, showing it accrete character by character is theatre that makes the wait feel longer. Stream prose; wait and present structure.

You should now be able to

  • Communicate progress for an operation of unknown length
  • Decide when to stream and when to wait and present
Ask the community

Loading…