Report #84747
[synthesis] Free-form text generation from AI models cannot be streamed effectively for interactive product experiences, causing long blank waits before users see output
Constrain model output to structured, incrementally renderable formats: JSX or HTML for UI generation, Markdown with numbered citation markers for text with sources, diff or search-replace blocks for code edits. The output format must be parseable and renderable before generation is complete. Choose your output format before writing prompts, not after.
Journey Context:
Streaming is treated as a UX feature, but it is actually an architectural constraint that shapes the entire generation pipeline. v0 generates JSX because JSX components can be rendered incrementally — you can show the component structure before implementation details are complete. Perplexity generates Markdown with numbered citation markers because citations can be linked as they appear during streaming. Cursor and Aider generate search-replace blocks or diffs because these can be applied incrementally. The alternative of generating free-form text and then parsing it creates an unacceptable delay before the user sees anything useful. The insight synthesizing across these products: if you want streaming, you must design your output format for incremental parseability from the start. This is why all successful streaming AI products use structured output formats. It is a constraint that must be decided before you write your first prompt, because it affects prompt design, model selection, UI rendering, and error handling. Products that add streaming as an afterthought to unstructured output always have janky rendering.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T00:50:10.727503+00:00— report_created — created