This approach is called SDUI, server-driven UI. The interface is served as data, and each channelβs native SDK renders it. One definition renders on your website, in your mobile apps, and on every channel you connect; publish a change and it is live on all of them at once, with no release cycle. This introduction to SDUI covers the pattern and why it scales; SDUI and MCP Apps explains how it works here.
Definitions are composed from a small closed set of primitives, and every visual value is a token name resolved by the theme. Thatβs all the theory this page needs; the Design tab of these docs is the full journey, from Quick Start through components, state, templates, and tokens.
MCP Apps are the future, and you are designing for it now. MCP Apps are interactive apps that run inside AI clients like ChatGPT and Claude. unoverse is native MCP, so every interface you design here is served as an MCP app. As new channels adopt the standard, your designs already work there.
Build it
1
Open Studio
Open Studio with
unoverse studio, then open Components: every definition renders from its prop defaults, and the controls walk its layouts and states. This is where youβll live while designing.2
Create your org
Your own work lives in your org: its components, its apps, its brand. One command sets it up:You get
Create your org
rx/acme/ with components/, templates/, and a complete copy of the default token set in styles/, self-contained and ready to rebrand.3
Make your theme
The first design work in a new org is the brand. It lives in
rx/acme/styles/:Start with
base/color.json and base/typography.json: your palette and your fonts. In Studio, switch to your org and change a value. Every component re-renders in your brand, live, with no build step. That loop, edit JSON and watch it render, is the whole design workflow.Change token values freely; keep every token name, and the theme contract stays green.4
Create your own component
Author your component in your project, at Reading it top to bottom:
rx/acme/components/pricecard/pricecard.json. Here is a complete simple price card, and what it renders:- Definition
- Rendered
- Data
rx/acme/components/pricecard/pricecard.json
- The envelope names the component and carries
whenToUse, how Agents discover it. propsdeclares every field a workflow can fill, each with a realisticdefault. The defaults are exactly what Studio renders in mock mode.input: truemarks the field as workflow-fed.rootcomposes the layout from the closed primitives: aBox, two boundTextelements, anEachover the features, and the shared button atom viaRef.- Every style value is a token name. No pixels, no hex.
5
Lint it
Check your definition
props, one home for every piece of state. Studio and the platform apply the same rules, so a clean lint means it ships.6
Put it in a workflow
New components register as nodes at boot, and a build restarts the platform:Your component now travels from Studio to Canvas by copy and paste:
Load the new node
- In Studio, open PriceCard under Components.
-
Click Copy for Canvas. The component is copied to your clipboard as a canvas node.

- In Canvas, open your workflow and paste with Cmd+V. The node lands on the canvas, sized to the card.
-
Double-click it and fill its fields, the same
title,price, andfeaturesyou saw in the Data tab, from upstream signals or literals.
Restarts are only for new components, because the platform synthesizes a node per definition at boot. Edits to existing components apply live.
How far this goes
A price card is the small end. Components carry states and layouts: a component can be a wizard that walks through steps, a card that expands into a full-screen focus view, or a product finder with its own private flow. Templates go further and become full microapps, MCP Apps with their own layouts, states, and workflow bindings, discovered and opened by Agents in conversation. Application state is managed for you. Every component owns its own state, templates react to it, and the platform holds one shared state across the whole conversation, so views, panels, and flows stay in sync with no state library to wire. The Design section covers all of it: components, state, templates, and tokens.Have Claude Code build it

Claude Code skill Β· ships with your repo
/unoverse-create
The same skill that builds nodes designs components. Open your repo in Claude Code and describe what you want:Create a pricing card component with a title, three feature lines, and a call to action.The skill follows the authoring rules, builds the definition in layers, lints it, and walks the deploy loop, so what it produces passes the same checks your own work does.
Next steps
The Design journey
Components, state, templates, and tokens, in full depth.
Create an MCP
Expose your Agent to ChatGPT and every MCP client.


