The quiet craft of making software feel obvious
The most sophisticated software often feels like it could not have worked any other way.
That feeling is designed. It comes from thoughtful defaults, direct language, resilient state, and hundreds of small engineering decisions that keep complexity behind the curtain.
Build a clear mental model
Before adding features, decide what the product believes about the world. The interface should teach that model through consistent nouns, predictable actions, and honest feedback.
type ProductState = "idle" | "working" | "done" | "blocked";
