Statewatch
Most design tools let you draw screens. They don't let you specify what's possible — all the intermediate states, the loading edges, the error branches, the recovery paths. I built a state machine to map a checkout flow. The diagram looked alarming. That felt correct.
Tried to formally specify the state space of a UI flow I was designing. Ended up with states I hadn't drawn in Figma — and a different understanding of what I'd actually been building.
What looks like a three-step flow in Figma is thirty-something states in reality.
State machines don't make the complexity go away. They make it visible. Designing from a diagram like this means you're designing from the truth of the system, not a happy-path sketch of it. Most edge cases aren't edge cases — they're just states nobody drew.