February 9, 2026·4 min read
The craft of the empty state
The first screen most users meet is the one with nothing on it. Designing zero as carefully as we design plenty.
We design with full fixtures. Twelve projects, a healthy graph, an inbox with plausible names. Then the product ships, and every real user meets it the same way: empty. No projects, no data, a wide white room with their coat still on.
The empty state is not an edge case. It is the front door. Statistically it is the most-seen novel screen in the product — everyone passes through it, and the ones who bounce off it never see anything else.
Zero is a moment, not an error
The default empty state — a gray icon and the sentence "No items yet" — treats absence as a malfunction to apologize for. But zero is simply the beginning of the story. The screen's job is to start it. A good empty state does three things:
- Names the reward: what this screen looks like when it is alive, and why that is worth wanting.
- Offers one action, not four. First-run attention is a narrow beam; point it.
- Shrinks the first step until it is almost embarrassing to skip. "Import one file." "Write one line."
The three zeros
It helps to notice that "empty" is three different rooms. First run — the user has never been here; teach and invite. Cleared — they finished everything; congratulate, do not condole. An inbox at zero is a trophy, and showing it the same gray shrug as a first run is a small act of malpractice. Filtered — their search matched nothing; say so plainly and offer the one-click way back.
Each zero has its own emotional temperature, and matching it is most of the craft.
Show the room with the lights on, then hand over one switch.
None of this costs engineering anything meaningful — it is copy, one illustration, one primary button. It only costs noticing. Pull up your product tomorrow, log in as nobody, and look at the room where every user starts. Design that room like you expect company.