Skip to main content
One law survives the move: 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 beyond eq, 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.