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 $ref resolution
  • 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 serve command 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 / .exe via electron-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