Core concepts
Everything hangs off one chain. Your API key authorizes requests, a display is the content — style, message, variables — and screens are the paired devices that render it. Update a display once and every screen showing it follows.
Variables are the data layer. Any message text can contain {{holes}} — e.g. NOW SERVING № {{number}}. Values live on the display and are filled at render time. Push new values with one call; unresolved holes render as-is so they're easy to spot. Editors see the raw template, screens see the data.