From 25e6d958d84f1a99ef97d81ef051f3022dc835e9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 17 Jan 2026 11:54:07 +0000
Subject: [PATCH 1/2] Initial plan
From 1d7b5d1069961fb6d1d43006df8841a78fbb6918 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 17 Jan 2026 11:58:23 +0000
Subject: [PATCH 2/2] Refactor VitePress homepage with comprehensive
professional content
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
---
docs/index.md | 319 ++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 284 insertions(+), 35 deletions(-)
diff --git a/docs/index.md b/docs/index.md
index eb66316f..3e287019 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -2,60 +2,309 @@
layout: home
hero:
- name: Object UI
- text: The Universal UI Engine
- tagline: Build Enterprise Interfaces with JSON. Render with React, Style with Tailwind.
+ name: ObjectUI
+ text: Stop Hand-Coding Enterprise UIs
+ tagline: A Server-Driven UI Engine that turns JSON into pixel-perfect React + Tailwind + Shadcn components. Build complex dashboards, forms, and data views faster—without sacrificing design quality or flexibility.
actions:
- theme: brand
- text: Quick Start
- link: /guide/introduction
+ text: Read the Spec
+ link: /protocol/overview
- theme: alt
- text: Architecture
- link: /spec/architecture
+ text: View Component Gallery
+ link: /components/
features:
- - title: 🎨 Tailwind Native
- details: Fully stylable using standard Utility Classes. No hidden styles or CSS modules. Merge styles via `className`.
- - title: 🔌 Backend Agnostic
- details: Connect to Rest, GraphQL, or Local Data. Universal `DataSource` interface allows usage with any API.
- - title: 🧱 Shadcn Compatible
- details: Built on Radix UI primitives. The rendered output looks and feels like hand-coded Shadcn components.
- - title: ⚡️ Lazy Loaded Plugins
- details: Heavy components (Monaco, Recharts) are loaded only when rendered, keeping your bundle ultra-light.
+ - title: 🎨 The Stack You Love
+ details: Built on React, Radix primitives (Shadcn), and native Tailwind CSS. Not a black box—override styles with utility classes. No hidden CSS modules. Just pure, modern frontend tech.
+ - title: ⚡️ Server-Driven Agility
+ details: Update layouts, fields, and validation rules instantly from your backend—no frontend redeployment needed. Change a form in production? Just update the JSON. The UI adapts in real-time.
+ - title: 🏢 Enterprise Ready-Made
+ details: Built-in support for complex patterns like Kanbans, Gantt charts, multi-step forms, and data tables with sorting/filtering. Stop rebuilding the same components from scratch.
---
-# The Shift to Schema-Driven UI
+# You Define the Intent. We Render the Reality.
-Object UI decouples the **Protocol** (JSON Schema) from the **Implementation** (React Components), allowing you to build complex enterprise apps faster without sacrificing control.
+Frontend development for enterprise apps is repetitive. You spend 80% of your time gluing together form libraries, data tables, and validation logic—writing the same boilerplate over and over.
-## How it works
+**ObjectUI turns UI into Data.** Define your interface in standard JSON, and let our engine render pixel-perfect, accessible React + Tailwind components.
-### 1. Define Protocol (JSON)
-You define the *what*, not the *how*. Standard Tailwind classes apply directly.
+---
+
+## The Magic Trick: JSON → Beautiful UI
+
+ObjectUI bridges the gap between configuration speed and design quality. Here's how:
+
+### Input: The Protocol (JSON Schema)
+
+You define **what** you want, not **how** to build it. Standard Tailwind classes work natively.
```json
{
- "type": "form",
- "className": "space-y-4 border p-4 rounded-lg",
- "fields": [
+ "type": "data-table",
+ "className": "rounded-lg border",
+ "dataSource": {
+ "api": "/api/users",
+ "method": "GET"
+ },
+ "columns": [
+ {
+ "key": "name",
+ "title": "User Name",
+ "sortable": true
+ },
+ {
+ "key": "email",
+ "title": "Email Address"
+ },
{
- "type": "input",
- "name": "email",
- "label": "Email Address",
- "className": "bg-slate-50"
+ "key": "status",
+ "title": "Status",
+ "render": "badge"
+ }
+ ],
+ "actions": [
+ {
+ "label": "Edit",
+ "type": "button",
+ "variant": "outline",
+ "onClick": {
+ "action": "navigate",
+ "target": "/users/${row.id}/edit"
+ }
}
]
}
```
-### 2. Render Component (React)
-The engine transforms generic JSON into polished **Shadcn UI** components.
+### Output: Production-Ready Shadcn Component
+
+The engine transforms your JSON into a **fully interactive, accessible data table** with:
+
+- ✅ Server-side data fetching
+- ✅ Column sorting and filtering
+- ✅ Action buttons with dynamic routing
+- ✅ Responsive design (mobile-friendly)
+- ✅ Light/dark theme support
+- ✅ WCAG 2.1 AA accessibility
+
+**All rendered using the same Shadcn UI primitives you'd hand-code**, but configured in seconds instead of hours.
+
+---
+
+## Why ObjectUI?
+
+### 1. The Stack You Love 🎨
+
+ObjectUI is **not a proprietary framework**. It's built on the modern frontend stack you already know and trust:
+
+- **React 18+** with hooks and concurrent rendering
+- **Radix UI primitives** (the foundation of Shadcn)
+- **Tailwind CSS** for styling—use utility classes directly in your JSON
+- **TypeScript-first** with complete type definitions
+
+**You're not locked into a black box.** Every component ObjectUI renders looks and behaves like hand-coded Shadcn UI. You can:
+
+- Override styles using `className` with Tailwind utilities
+- Inspect the rendered DOM—it's just clean React + Radix
+- Mix ObjectUI with your existing React codebase seamlessly
+
+### 2. Server-Driven Agility ⚡️
+
+In traditional frontend development, changing a form field requires:
+
+1. Editing React code
+2. Running tests
+3. Building the app
+4. Deploying to production
+
+With **Server-Driven UI (SDUI)**, the UI is a **configuration**, not code. ObjectUI separates the **protocol** (what to render) from the **implementation** (how to render it).
+
+**The Benefits:**
+
+- **Instant Updates:** Change layouts, fields, or validation rules from your backend—no frontend redeployment
+- **A/B Testing:** Serve different UI schemas to different users dynamically
+- **Multi-tenant Apps:** Each client gets a customized interface from the same codebase
+- **Backend-Driven Validation:** Form rules defined server-side, enforced client-side automatically
+
+**Example:** Your backend returns a JSON schema. The UI adapts instantly.
+
+```typescript
+// Backend returns this JSON
+const schema = await fetch('/api/dashboard/schema').then(r => r.json());
+
+// React renders it
+