Interfaces That Teach
A good interface does not only accept input. It teaches the shape of the system while your hand is still on it.
By Julian Hale · Portland, Oregon

I think about door handles more than is reasonable. A good handle tells you, in the hand, whether to push or pull. You should not need a sign. Software keeps putting up signs. “Click here to sync.” “Are you sure?” “Advanced settings.” The handle itself remains ambiguous.
An interface that teaches makes the next legal move obvious and the illegal move awkward. Disabled states with reasons. Defaults that match the common Tuesday. Previews that show consequences before they happen. Copy that names the object the system actually has, not the object marketing wished it had.
Agents need handles too
When a loop can act, the interface is no longer just a form. It is a set of handles on a moving machine. Show the proposed tool call. Show the receipt. Make the stop button larger than the pride of the demo. If the user cannot tell whether the agent is looking, acting, or waiting, you have built a door with no handle and a motor behind it.
I will take a slightly uglier screen that tells the truth over a beautiful one that requires folklore. Folklore does not scale to the next hire, and it does not scale to a model that will do exactly what the unlabeled button appears to allow.
Letters on this piece
Priya Nair · May 6, 2026
We added a “why this is disabled” line under three buttons. Support volume on those flows fell immediately. Handles, not signs.
Continue
tools
Static Sites and Honest Constraints
A site that cannot lie about its backend is a good place to practice product honesty. The files are the system.
agents
The Agent Is a Loop, Not a Person
An agent is not a colleague. It is a loop with tools, memory, and a stopping rule. Treat it like a person and you will design the wrong system.
agents
Tool Use Is the Real Intelligence
The model is not the product. The tools are. Most “agent intelligence” is a well-named function with a strict schema and a boring implementation.