Skip to content

AI product design & UX

How to design an interface around a component that is slow, non-deterministic, sometimes confidently wrong, and billed per interaction.

Every interface pattern you already know assumes a deterministic component underneath. Press the button, the same thing happens; if it cannot happen, you get an error. A language model breaks all three parts of that assumption at once: the same input gives different output, the wrong output arrives with no error attached, and the whole thing takes long enough that the user has time to leave.

So these pages do not start from design principles. They start from the five mechanical properties of the model — it is slow and unpredictably so, it streams, it is stochastic, it is confidently wrong sometimes, and it costs money per call — and work forward to what each one forces on the interface. Where a pattern can be written down as a state machine or as code, it is, because that is the version you can check.

Designing for Probabilistic Output

The one shift that separates AI interface design from everything before it: there is no guaranteed correct answer, and no error when the answer is wrong.

6 min read

Setting Expectations: Telling Users What AI Can’t Do

Which limits are worth telling users about, where the telling has to happen, and why a warning on every output stops being a warning.

6 min read

Loading States for Slow AI: The 40-Second Problem

What to put on screen for the seconds before the first token, why a determinate progress bar would be a fabrication, and the state machine that replaces it.

6 min read

Streaming UX: Why Watching Text Appear Feels Faster

The perceived-performance findings that explain the streaming win, which of them actually transfer to a token stream, and the costs nobody mentions.

6 min read

Error Messages When the Model Fails

The full taxonomy of ways an AI call fails, why several of them are indistinguishable from the outside, and what to say for each.

6 min read

Undo, Regenerate and Edit: Recovery Affordances

Three different recovery affordances, what each one is mechanically for, and the version stack that stops regenerate from destroying an answer the user wanted.

6 min read

Showing Confidence Without Faking Precision

Where a confidence number could come from, why none of the available sources measures what a percentage implies, and what to display instead.

6 min read

Citations and Sources in an AI Interface

What a citation has to carry to actually reduce the cost of checking an answer, and the failure mode where the source is real and does not support the sentence.

6 min read

Chat vs Forms vs Inline: Choosing an AI Interaction Model

Why chat became the default, what it costs on every axis that matters, and the test that tells you when a form or an inline action is the better interface.

6 min read

Prompt Suggestions and the Blank Canvas Problem

What an empty text box fails to communicate, the three separate jobs suggestions are asked to do, and the rule that keeps them from teaching the wrong thing.

5 min read

Designing Approval Flows for AI Actions

How much friction an AI action deserves, scored from its blast radius, and why a confirmation on everything is the same as a confirmation on nothing.

6 min read

Feedback Widgets That Produce Usable Data

What a thumbs-down can and cannot tell you, the two structural reasons it tells you so little, and the payload that makes a rating debuggable.

6 min read

Disclosure: Telling Users They’re Talking to AI

The two independent reasons to disclose, why disclosure belongs on the output rather than in a banner, and the handoff case that catches most products out.

5 min read

Handling Refusals Gracefully in the UI

Why a refusal is not an error, why it is hard to detect, and what to show when the model declines a request the user thought was ordinary.

5 min read

Multi-Turn Conversation Design

What changes when a single call becomes a conversation: context that grows, mistakes that persist, and repair that has to be able to reach backwards.

6 min read

Progressive Disclosure of AI Reasoning

Whether to show a model's thinking, how to show it without burying the answer, and the honesty constraint that stops it being presented as an explanation.

6 min read

Accessibility in AI Interfaces

The genuine conflict between token streaming and ARIA live regions, the commit pattern that resolves it, and the accessibility problems specific to generated content.

6 min read

Onboarding Users Into an AI Feature

Why the goal of an AI first-run is calibrated trust rather than enthusiasm, and what that changes about the sequence.

5 min read

Measuring AI Feature Adoption

Why invocation counts systematically overstate a bad feature, the outcome ladder that replaces them, and the one number that decides whether the feature can exist.

6 min read

Dark Patterns in AI Products

Seven patterns specific to AI products, where each one comes from, and why the worst of them are selected for rather than designed.

6 min read

AI product design & UX · Multigrid