The Universal Schema-Driven UI Engine
From JSON to world-class UI in minutes
Organize components into namespaces to prevent naming conflicts:
ComponentRegistry.register('button', ButtonComponent, {
namespace: 'ui' // β¨ New: Prevent conflicts across plugins
});Load only the fields you need for 30-50% smaller bundles:
import { registerField } from '@object-ui/fields';
// Only load what you use
registerField('text');
registerField('number');
// 70% smaller bundle size! π- 3-5x faster CI builds with Turbo v2
- Parallel package builds with intelligent caching
- Instant rebuilds for unchanged packages
π Read the Migration Guide for details and examples.
Since this package is not yet published to NPM, here is how to play with the source code:
-
Clone & Install
git clone https://github.com/objectstack-ai/objectui.git cd objectui pnpm install # Build the core engine pnpm build
-
Run the ObjectStack Console
Start the unified development console to preview your apps and objects:
pnpm dev # Opens http://localhost:5173 -
Edit & Reload
Edit the JSON schema files and the changes will be instantly reflected in the browser.
- examples/crm - CRM metadata app with a custom server.
- examples/kitchen-sink - Component catalog metadata app.
- examples/objectstack-server - Run a metadata app with @objectstack/cli.
Install the core packages to use <SchemaRenderer> inside your Next.js or Vite app.
npm install @object-ui/react @object-ui/components @object-ui/data-objectstack- Professional designs using Tailwind CSS and Shadcn/UI
- Light/dark theme support
- Fully customizable with utility classes
- WCAG 2.1 AA accessible
- 3x faster page loads than traditional low-code platforms
- 6x smaller bundle sizes (< 50KB vs 300KB+)
- Built on React 18+ with automatic optimizations
- Tree-shakable architecture
- TypeScript-first with complete type definitions
- Zero learning curve if you know React
- Works with existing tools and workflows
- Full control - extend or customize anything
- 85%+ test coverage
- Enterprise security built-in
- Comprehensive documentation
- Active development and support
- Advanced Field Types: Vector (AI embeddings), Grid (sub-tables), Formula, Summary
- Query AST Builder: SQL-like queries with joins, aggregations, subqueries
- Smart Validation: 30+ rules, async validation, cross-field dependencies
- Multi-Datasource: Health monitoring, connection pooling, query caching
- 40+ Filter Operators: Date ranges, lookup filters, full-text search
- Object Inheritance: Triggers, advanced permissions, metadata caching
Stop Writing Repetitive UI Code
// Traditional React: 200+ lines
function UserForm() {
// ... useState, validation, handlers, JSX
}
// Object UI: 20 lines
const schema = {
type: "crud",
api: "/api/users",
columns: [...]
}Better Performance, Smaller Bundle
- Automatic code splitting
- Lazy-loaded components
- Zero runtime CSS overhead
- Optimized for production
Full Control & Flexibility
- Mix with existing React code
- Override any component
- Custom themes with Tailwind
- Export to standard React anytime
| Feature | Object UI | Amis | Formily | Material-UI |
|---|---|---|---|---|
| Tailwind Native | β | β | β | β |
| Bundle Size | 50KB | 300KB+ | 200KB+ | 500KB+ |
| TypeScript | β Full | Partial | β Full | β Full |
| Tree Shakable | β | β | ||
| Server Components | β | β | β | |
| Visual Designer | β | β | β | β |
The easiest way to get started is using the Object UI CLI:
# Install the CLI globally
npm install -g @object-ui/cli
# Create a new app from JSON schema
objectui init my-app
# Start the development server
cd my-app
objectui serve app.schema.jsonYour app will be running at http://localhost:3000! π
Just edit app.schema.json to build your UI - no React code needed.
# Using npm
npm install @object-ui/react @object-ui/components
# Using yarn
yarn add @object-ui/react @object-ui/components
# Using pnpm
pnpm add @object-ui/react @object-ui/componentsimport React from 'react'
import { SchemaRenderer } from '@object-ui/react'
import { registerDefaultRenderers } from '@object-ui/components'
// Register default components once
registerDefaultRenderers()
const schema = {
type: "page",
title: "Dashboard",
body: {
type: "grid",
columns: 3,
items: [
{ type: "card", title: "Total Users", value: "${stats.users}" },
{ type: "card", title: "Revenue", value: "${stats.revenue}" },
{ type: "card", title: "Orders", value: "${stats.orders}" }
]
}
}
function App() {
const data = {
stats: { users: 1234, revenue: "$56,789", orders: 432 }
}
return <SchemaRenderer schema={schema} data={data} />
}
export default AppObject UI is a modular monorepo with packages designed for specific use cases:
| Package | Description | Size |
|---|---|---|
| @object-ui/types | TypeScript definitions and protocol specs | 10KB |
| @object-ui/core | Core logic, validation, registry, expression evaluation | 20KB |
| @object-ui/react | React bindings and SchemaRenderer |
15KB |
| @object-ui/components | Standard UI components (Tailwind + Shadcn) | 50KB |
| @object-ui/fields | Field renderers and registry | 12KB |
| @object-ui/layout | Layout components with React Router integration | 18KB |
| Package | Description | Size |
|---|---|---|
| @object-ui/cli | CLI tool for building apps from JSON schemas | 25KB |
| @object-ui/runner | Universal application runner for testing schemas | 30KB |
| vscode-extension | VSCode extension with IntelliSense and live preview | 32KB |
| Package | Description | Size |
|---|---|---|
| @object-ui/data-objectstack | ObjectStack data adapter | 8KB |
| Plugin | Description | Size |
|---|---|---|
| @object-ui/plugin-aggrid | AG Grid data grid integration | 150KB |
| @object-ui/plugin-calendar | Calendar and event management | 25KB |
| @object-ui/plugin-charts | Chart components powered by Recharts | 80KB |
| @object-ui/plugin-chatbot | Chatbot interface components | 35KB |
| @object-ui/plugin-dashboard | Dashboard layouts and widgets | 22KB |
| @object-ui/plugin-editor | Rich text editor powered by Monaco | 120KB |
| @object-ui/plugin-form | Advanced form components | 28KB |
| @object-ui/plugin-gantt | Gantt chart visualization | 40KB |
| @object-ui/plugin-grid | Advanced data grid | 45KB |
| @object-ui/plugin-kanban | Kanban boards with drag-and-drop | 100KB |
| @object-ui/plugin-map | Map visualization | 60KB |
| @object-ui/plugin-markdown | Markdown rendering | 30KB |
| @object-ui/plugin-timeline | Timeline components | 20KB |
| @object-ui/plugin-view | ObjectQL-integrated views (grid, form, detail) | 35KB |
Object UI is designed to work with any backend through its universal DataSource interface:
npm install @object-ui/coreimport { createObjectStackAdapter } from '@object-ui/core';
const dataSource = createObjectStackAdapter({
baseUrl: 'https://api.example.com',
token: 'your-auth-token'
});
// Use with any component
<SchemaRenderer schema={schema} dataSource={dataSource} />You can create adapters for any backend (REST, GraphQL, Firebase, etc.) by implementing the DataSource interface:
import type { DataSource, QueryParams, QueryResult } from '@object-ui/types';
class MyCustomDataSource implements DataSource {
async find(resource: string, params?: QueryParams): Promise<QueryResult> {
// Your implementation
}
// ... other methods
}Object UI is perfect for:
- β Admin Panels - Complete CRUD interfaces in minutes
- β Dashboards - Data visualization and analytics
- β Forms - Complex multi-step forms with validation
- β CMS - Content management systems
- β Internal Tools - Business applications
- β Prototypes - Rapid UI prototyping
Phase 1-2 (Q4 2025 - Q1 2026) β COMPLETED:
- β Core schema rendering engine
- β 40+ production-ready components (Shadcn + Tailwind)
- β Expression system with field references
- β Action system (AJAX, chaining, conditions)
- β Theme system (light/dark mode)
- β Report builder with exports
- β Visual designer (beta)
Phase 3 (Q1-Q2 2026) β COMPLETED:
- β Advanced Field Types: Vector (AI embeddings), Grid (sub-tables), Formula, Summary
- β ObjectSchema Enhancements: Inheritance, triggers, advanced permissions, metadata caching
- β QuerySchema AST: SQL-like query building with joins, aggregations, subqueries
- β Advanced Filtering: 40+ operators, date ranges, lookup filters, full-text search
- β Validation Engine: 30+ rules, async validation, cross-field validation
- β DriverInterface: Transactions, batch operations, connection pooling, query caching
- β DatasourceSchema: Multi-datasource management, health monitoring
Phase 4+ (Q2-Q4 2026):
- π Real-time collaboration features
- π Mobile-optimized components
- π AI-powered schema generation
- π Advanced workflow automation
See PHASE3_IMPLEMENTATION.md for detailed Phase 3 documentation.
We welcome contributions! Please read our Contributing Guide for details.
- π Contributing Guide - How to contribute to the project
- ποΈ Architecture Evaluation - Comprehensive architecture analysis and improvement recommendations (δΈζη)
- π ObjectStack Spec Alignment - Alignment analysis with ObjectStack Spec v0.7.1 and development roadmap (δΈζη)
Quick Setup (Recommended):
# Clone the repository
git clone https://github.com/objectstack-ai/objectui.git
cd objectui
# Run automated setup script
./scripts/setup.shManual Setup:
# Clone the repository
git clone https://github.com/objectstack-ai/objectui.git
cd objectui
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run the development site
pnpm dev
# Run tests
pnpm testObject UI is MIT licensed.
- β Star on GitHub - Show your support!
- π Documentation - Comprehensive guides and API reference
- π Report Issues - Found a bug? Let us know
- π§ Email Us - Get in touch
Object UI is inspired by and builds upon ideas from:
- Amis - Schema-driven UI framework
- Formily - Form solution
- Shadcn/UI - UI component library
- Tailwind CSS - Utility-first CSS framework
Built with β€οΈ by the ObjectQL Team
Website Β· Documentation Β· GitHub