The protocol that makes
UI universal.
One schema. Seven platforms. Design, code, testing, and AI — synchronized. Describe your interface once. UIX renders it everywhere.
{
"id": "login-screen",
"name": "Login",
"root": "root",
"nodes": {
"root": {
"id": "root",
"type": "Frame",
"layout": { "direction": "vertical", "gap": 24 },
"children": ["email", "password", "submit"]
},
"email": {
"id": "email",
"type": "Input",
"props": { "placeholder": "Email", "inputType": "email" }
},
"submit": {
"id": "submit",
"type": "Button",
"props": { "label": "Sign In" },
"style": { "background": "{color.accent}" }
}
}
}The problem
Design and code don't speak
the same language.
Designers export PNGs. Developers rewrite everything. QA tests manually. Every platform gets its own implementation. Changes break silently.
Design-code mismatch
Figma exports don't match production. Every handoff introduces drift.
Platform fragmentation
Web, iOS, Android, Flutter — each gets a separate implementation. Bugs multiply.
Manual QA
Visual regressions slip through. Testing is pixel-diffing screenshots instead of understanding UI.
AI can't help
Without a structured schema, AI agents can't read, write, or validate your interface.
Token fragmentation
Design tokens live in Figma, code tokens live in CSS. They're never in sync.
Slow iteration
A button change takes a Figma update, a PR, a review, and a deploy. For every platform.
The solution
One document.
Every platform.
UIX is a universal schema for user interfaces. Describe your UI once as a UIXDocument. UIX renders it to React, Flutter, SwiftUI, Vue, Angular, React Native, and HTML.
React
.tsx
Flutter
.dart
SwiftUI
.swift
Vue
.vue
Angular
.ts
React Native
.tsx
HTML
.html
How it works
Three steps. Zero lock-in.
Describe
Define your UI as a UIXDocument — a JSON schema of nodes, tokens, and layout.
import { createDocument } from '@uix/protocol';
const doc = createDocument({
name: 'LoginScreen',
nodes: {
root: { type: 'Frame', children: ['email', 'submit'] },
email: { type: 'Input', props: { placeholder: 'Email' } },
submit: { type: 'Button', props: { label: 'Sign In' } },
},
});Render
Generate native code for any platform — one command.
import { UIXCodegen } from '@uix/codegen';
const codegen = new UIXCodegen();
const result = codegen.generate(doc, {
targets: ['react', 'flutter', 'swiftui'],
});
// → Login.tsx, login.dart, LoginView.swiftSync
Keep Canvas, VS Code, and CI in sync. Changes propagate instantly.
$ uix push
✓ Synced login.uix.json
$ uix diff
Modified: submit.style.background
$ uix watch18 packages
A complete platform,
not a library.
18 modular packages covering the full UI lifecycle — from design to deployment.
@uix/protocol<1ms parseCore types, validation, diff, tokens, animation, canonical registry
@uix/codegen~50ms gen7 platform renderers, 4 token writers, 2 test generators
@uix/runtime9 steps9-step interpretation pipeline: document × environment → tree
@uix/canvas21 blueprintsVisual design tool — self-hosting, schema-driven
@uix/kernel5 personasSemantic engine — agents, pipelines, MCP, auth, storage
@uix/vscodeVS CodeSchema validation, live preview, document sync
@uix/mcp58 toolsAI agent integration — 58 MCP tools across 10 categories
@uix/qa-engine8 categories8 regression categories, 4-tier selector strategy
@uix/catalystOTELQA dashboard — telemetry, coverage, CI views
@uix/devtools7 commandsCLI — init, push, checkout, diff, status, watch, hooks
@uix/image-codecBase85Image-as-Schema — raster tiling, SVG decomposition, Base85
@uix/serverreal-timeWebSocket real-time sync server
@uix/console10 panelsDeveloper control panel — 10 schema factory panels
@uix/e2e12 packages10 scenarios exercising 12 packages end-to-end
<1ms
Schema parse
~50ms
Code generation
7
Platform targets
58
MCP tools for AI
Ready to make UI universal?
UIX Protocol is free, open source, and ready to use. Start with the protocol. Grow into the platform.