Universal Object UI Application Runner - A standalone development server and runtime for testing Object UI schemas.
- Schema Development - Test and debug Object UI schemas in isolation
- Hot Reload - Automatic reload on schema changes
- Plugin Support - Pre-configured with popular plugins (Kanban, Charts, etc.)
- Development Ready - Built-in Vite development server
- Production Build - Optimized build for deployment
pnpm add @object-ui/runnerThe runner is primarily used for schema development and testing:
# Start development server
pnpm dev
# Build for production
pnpm build
# Preview production build
pnpm previewYou can also use the runner as a library in your projects:
import { createRunner } from '@object-ui/runner';
const runner = createRunner({
schema: mySchema,
plugins: ['kanban', 'charts'],
theme: 'light'
});
runner.mount('#app');The runner comes with these plugins pre-configured:
- @object-ui/plugin-kanban - Kanban board components
- @object-ui/plugin-charts - Chart visualization components
- Additional plugins can be added as needed
The runner can load schemas from various sources:
// From JSON file
const schema = await import('./my-schema.json');
// From JavaScript/TypeScript
const schema = {
type: 'page',
title: 'My App',
body: {
type: 'card',
content: 'Hello World'
}
};
// From API endpoint
const schema = await fetch('/api/schema').then(r => r.json());Create a runner.config.js file to customize the runner:
export default {
port: 3000,
host: 'localhost',
plugins: ['kanban', 'charts'],
theme: {
primaryColor: '#3b82f6',
darkMode: true
}
};- Create a schema file (JSON or TypeScript)
- Start the runner with
pnpm dev - Edit the schema - changes reload automatically
- Test your UI in the browser
- Build for production with
pnpm build
{
"type": "page",
"title": "Dashboard",
"body": {
"type": "grid",
"columns": 3,
"gap": 4,
"children": [
{
"type": "card",
"title": "Total Users",
"body": {
"type": "statistic",
"value": 1234,
"trend": "up"
}
},
{
"type": "card",
"title": "Revenue",
"body": {
"type": "statistic",
"value": "$56,789",
"trend": "up"
}
},
{
"type": "card",
"title": "Orders",
"body": {
"type": "statistic",
"value": 432,
"trend": "down"
}
}
]
}
}For detailed documentation, visit the Object UI Documentation.
MIT