Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,42 @@

All notable changes to this project will be documented in this file.

## [Unreleased]

### Added

- **@object-ui/app-shell** - New package providing minimal application rendering engine for third-party integration
- `AppShell` - Basic layout container component
- `ObjectRenderer` - Renders object views (Grid, Kanban, List, etc.)
- `DashboardRenderer` - Renders dashboard layouts from schema
- `PageRenderer` - Renders custom page schemas
- `FormRenderer` - Renders forms (modal or inline)
- Framework-agnostic design (~50KB bundle size)

- **@object-ui/providers** - New package with reusable React context providers
- `DataSourceProvider` - Generic data source context (not ObjectStack-specific)
- `MetadataProvider` - Schema/metadata management
- `ThemeProvider` - Theme management with system theme detection
- Zero backend coupling (~10KB bundle size)

- **examples/minimal-console** - Proof-of-concept demonstrating third-party integration
- Custom console built in ~100 lines of code
- Custom routing with React Router
- Mock data source (not ObjectStack)
- No console dependencies
- Shows how to integrate ObjectUI without full console infrastructure

- **Architecture Documentation** - New `docs/ARCHITECTURE.md` explaining:
- Package architecture and boundaries
- Migration strategy from monolithic console
- Integration examples for third-party systems
- Custom data source interface

### Changed

- Console can now be streamlined for third-party use without inheriting full infrastructure
- Bundle size for core rendering reduced from 500KB+ to ~50KB using new packages

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

Expand Down
53 changes: 50 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Since this package is not yet published to NPM, here is how to play with the sou
cd objectui
pnpm install
# Build the core engine
pnpm build
pnpm build
```

2. **Run the ObjectStack Console**
Expand All @@ -72,7 +72,17 @@ Since this package is not yet published to NPM, here is how to play with the sou
# Opens http://localhost:5173
```

3. **Edit & Reload**
3. **Try the Minimal Console Example** (New!)

See how to integrate ObjectUI in your own app:

```bash
cd examples/minimal-console
pnpm dev
# Opens http://localhost:5174
```

4. **Edit & Reload**

Edit the JSON schema files and the changes will be instantly reflected in the browser.

Expand All @@ -84,6 +94,7 @@ ObjectStack examples that demonstrate different features and use cases:
- **[examples/todo](examples/todo)** - Simple task management app demonstrating basic ObjectStack configuration and field types.
- **[examples/kitchen-sink](examples/kitchen-sink)** - Comprehensive component catalog showing all available field types, dashboard widgets, and view types.
- **[examples/msw-todo](examples/msw-todo)** - Frontend-first development example using MSW (Mock Service Worker) to run ObjectStack in the browser.
- **[examples/minimal-console](examples/minimal-console)** ⭐ **NEW!** - Minimal custom console in ~100 lines showing third-party integration without full console infrastructure. Uses `@object-ui/app-shell` and `@object-ui/providers` with custom routing and mock API.

### Running Examples as API Servers

Expand All @@ -107,12 +118,48 @@ Each server provides:

## 📦 For React Developers

Install the core packages to use `<SchemaRenderer>` inside your Next.js or Vite app.
### Option 1: Full Console (ObjectStack Backend)

Install the core packages to use `<SchemaRenderer>` inside your Next.js or Vite app with ObjectStack backend:

```bash
npm install @object-ui/react @object-ui/components @object-ui/data-objectstack
```

### Option 2: Minimal Integration (Any Backend) ⭐ **NEW!**

Use ObjectUI components without the full console infrastructure. Perfect for integrating into existing apps:

```bash
npm install @object-ui/app-shell @object-ui/providers
```

Then build your own console in ~100 lines:
```tsx
import { AppShell, ObjectRenderer } from '@object-ui/app-shell';
import { ThemeProvider, DataSourceProvider } from '@object-ui/providers';

function MyConsole() {
return (
<ThemeProvider>
<DataSourceProvider dataSource={myAPI}>
<AppShell sidebar={<MySidebar />}>
<ObjectRenderer objectName="contact" />
</AppShell>
</DataSourceProvider>
Comment on lines +139 to +149
Copy link

Copilot AI Apr 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README integration snippet uses <ObjectRenderer objectName="contact" /> without providing dataSource, but the current ObjectRendererProps requires dataSource. Either update the snippet to pass dataSource, or update ObjectRenderer to read from the DataSourceProvider context so the documented integration pattern actually works.

Copilot uses AI. Check for mistakes.
</ThemeProvider>
);
}
```

**Benefits:**
- 🎯 **Lightweight**: ~50KB vs 500KB+ full console
- 🔌 **Any Backend**: REST, GraphQL, custom APIs (not just ObjectStack)
- 🎨 **Full Control**: Custom routing, auth, layouts
- 📦 **Cherry-pick**: Use only what you need

See [examples/minimal-console](examples/minimal-console) for a complete working example.

### 🎨 **Beautiful by Default**
- Professional designs using **Tailwind CSS** and **Shadcn/UI**
- Light/dark theme support
Expand Down
Loading
Loading