Roadmap
UIGen is developed in phases. Here's what's been shipped and what's coming next.
Phase 1: Core vertical slice ✅ Complete
- Monorepo scaffold (pnpm + Vite + TypeScript)
- IR types (auth, relationships, pagination hints, validation rules)
- OpenAPI 3.x adapter with full
$refresolution - Swagger 2.0 adapter
- View hint classifier (list, detail, create, update, delete, search, wizard, action)
- Relationship detector (hasMany / belongsTo)
- Pagination detector (offset, cursor, page-based)
- Core field components (TextField, NumberField, SelectField, DatePicker, FileUpload, ArrayField, ObjectField)
- ListView with TanStack Table: sorting, pagination, filtering, row actions
- FormView with React Hook Form + Zod validation
- CLI
servecommand with Vite proxy - Opinionated theme (shadcn/ui dark/light toggle)
- Authentication UI (Bearer token + API Key)
- Environment switching (server dropdown from spec
servers) - Error resilience (graceful degradation, error boundary, toast notifications)
Phase 2: Full surface area ✅ Complete
- DetailView with related resource links
- EditFormView (pre-populated from current record)
- Delete with confirmation dialog
- Custom action buttons (non-CRUD operations)
- SearchView (global + per-resource filters)
- DashboardView (auto-generated overview with resource counts)
- WizardView (multi-step for large forms)
- Sidebar layout + TopBar + Breadcrumbs + responsive shell
- React Router with full URL navigation and browser history
- Config reconciliation system (runtime annotation merging from
.uigen/config.yaml) - Built-in list charts via
x-uigen-chart(Recharts, query limits, client-side sampling, filter controls)
Phase 3: Extension & distribution 🔜 In progress
-
x-uigen-*vendor extension support (label, ignore, ref, chart, layout, profile, landing page, auth, datetime) -
.uigen/config.yaml: theme/behaviour/resource overrides -
uigen build: package config, spec, and overrides for deployment - Publish core packages to npm (
@uigen-dev/core,@uigen-dev/react,@uigen-dev/cli) - Electron desktop target (
uigen serve --target electron,@uigen-dev/target-electron) - Standalone Electron packaging (
.dmg/.exeviaelectron-builder) -
uigen validate: spec linting with actionable errors and line numbers -
uigen generate: static production HTML build output - OAuth2 PKCE authentication flow
- Spec hot-reloading (file watcher → WebSocket push to UI)
- Loading skeletons with shimmer animation
- Virtual scrolling for large datasets (TanStack Virtual)
- Request / response interceptors (config-driven middleware)
- Response transformation (JSONPath + JS functions)
Phase 4: Renderer ecosystem
-
@uigen-dev/svelte: Svelte renderer consuming the same IR -
@uigen-dev/vue: Vue 3 renderer - Plugin API: register custom adapters, field types, and view strategies as npm packages
-
uigen ui:config: visual configuration dashboard -
@uigen-dev/plugin-charts: additional chart widgets and custom renderers beyond built-in list charts -
@uigen-dev/plugin-mapbox: map renderer for geo coordinate fields - GraphQL adapter
- OpenAPI 3.1 full support