View-based UI definitions, a composable widget system, and dynamic form rendering — all derived from your data schemas.
Every module declares its own UI structure through a schema registry. View definitions, field widgets, and section layouts are separated from the underlying data schema — keeping presentation logic independent and replaceable without touching business rules.
1return [2 'schema_id' => 'product',3 'views' => [4 [5 'id' => 'product.create',6 'type' => 'form',7 'sections' => [8 [9 'id' => 'general',10 'label' => 'General Information',11 'position' => 1,12 'fields' => [13 [14 'key' => 'name',15 'widget' => 'text-input',16 'label' => 'Product Name',17 'span' => 'full',18 ],19 [20 'key' => 'sku',21 'widget' => 'text-input',22 'label' => 'SKU',23 'span' => 'half',24 ],25 [26 'key' => 'status',27 'widget' => 'select',28 'label' => 'Status',29 'span' => 'half',30 ],31 ],32 ],33 [34 'id' => 'pricing',35 'label' => 'Pricing',36 'position' => 2,37 'fields' => [38 [39 'key' => 'price',40 'widget' => 'currency-input',41 'label' => 'Unit Price',42 'span' => 'half',43 ],44 ],45 ],46 ],47 ],48 ],49];UI Engine at a glance
4 View Types
list / detail / form / dashboard
20+ Widgets
text, number, select, date...
Per-Module
isolated UI schemas
Auto-Validation
from schema rules
From schema definition to submitted form — every step is resolved at runtime with zero manual template creation.
Schema Definition
Module registers its data schema with field types, validation rules, and relationships
View Registry
UI schema registry maps data fields to view definitions — decoupling data from presentation
Section Parser
View sections are parsed into ordered groups with positioning, labels, and span rules
Widget Resolver
Each field's widget type is resolved from the registry — text-input, select, currency, or custom
Form Renderer
SchemaFormRenderer composes resolved widgets into a fully functional form layout
Validation
Validation rules derived from the data schema are applied client-side before submission
Submit
Validated payload is dispatched to the API engine — field mapping handled automatically
Schema Definition
Module registers its data schema with field types, validation rules, and relationships
View Registry
UI schema registry maps data fields to view definitions — decoupling data from presentation
Section Parser
View sections are parsed into ordered groups with positioning, labels, and span rules
Widget Resolver
Each field's widget type is resolved from the registry — text-input, select, currency, or custom
Form Renderer
SchemaFormRenderer composes resolved widgets into a fully functional form layout
Validation
Validation rules derived from the data schema are applied client-side before submission
Submit
Validated payload is dispatched to the API engine — field mapping handled automatically
The SchemaFormRenderer reads view definitions at runtime and generates fully functional frontend forms. Layout specifications, field ordering, section grouping, and widget selection are all resolved from the UI schema — no manual template creation required.
The building blocks that make schema-driven UI practical, predictable, and extensible across every module.
View-based UI definitions that describe form, list, and detail layouts without coupling to frontend frameworks.
Field widget definitions map data types to input components — text, select, currency, date, and custom widgets.
Sections group related fields with positioning, labels, and span rules to create structured, readable forms.
Each module defines and registers its own UI schemas independently, preventing cross-module UI dependencies.