UI = f(state). It now applies at every scale, and everything
else you know becomes data.
The concepts
Read these once. Each row is a thing you already understand, wearing its name here.The reflexes
Look these up while you write. Each row is a code habit and the move that replaces it.The four habit-breakers
Almost all early confusion is one of these. No expressions. You cannot compute, concatenate or compare beyondeq, ne, in and
truthy. A value you are missing is one the workflow node sends. This constrains you for about
an hour, and then it is the feature: a definition stays verifiable, portable, and safe for an
AI to write.
No invented vocabulary. Primitives are closed, style keys are closed, and style values
are token names. An unknown style key renders nowhere on any platform, so it is always a typo
or a web-ism that would not port. When you hit the wall, the answer is composition or a new
token.
No plumbing. State transport, streaming, voice, reconnection and turn identity all sit
inside the SDK. You write what things look like and which keys they read.
No reaching in. An interface writes its own state and nothing else’s. There is no
lifting state up, no prop drilling, no parent adjusting a child after it is placed. When
something must respond, it reacts to a state by name.
The theory, if you want it
None of this is a house invention. One discriminant per axis is the discriminated-union
doctrine. Nested states with an
initial at every level are
statecharts. A
streamed interface is a spawned
actor that owns
its state and publishes it. Deriving rather than storing is React’s own
Choosing the State Structure.Next steps
Components
States, layouts, and everything a component can show.
State
How an interface and the templates around it stay in step.

