A Server-Driven UI framework for Laravel + Inertia.js + React. The server emits complete UI schemas as JSON; the React client renders them deterministically. One source of truth, in PHP.
New here? Read Server-Driven UI for the pattern, then walk through the Quick Start.
- Installation — Composer, service provider, Vite wiring, Tailwind source path.
- Quick Start — scaffold a panel, generate a resource, see the list view in the browser.
The four primitives you compose every admin screen from:
| Primitive | Docs | What it is |
|---|---|---|
| Panel | Panel Configuration | The top-level container — routes, brand, middleware, discovery. |
| Resource | Overview · Custom Pages · Relation Managers | An Eloquent model bound to CRUD pages, a table, a form, and policies. |
| Page | Overview · Blocks · Actions | The unit of routing. Every screen — dashboard, list, edit, custom — is a Page subclass. |
| Widget | Overview | Dashboard tiles — stats, charts, recent records, activity feeds. |
- Tables — Columns · Filters · Actions
- Forms — Fields, sections, tabs
- Authorization — policy-gated resources, pages, and actions.
- Notifications — server-rendered toasts and flash messages.
- Global Search — cross-resource search with scorers.
- Internationalization & RTL — translation, locale switching, RTL layout.
- Configuration — every
config/monorail.phpkey, env variables, andvendor:publishtags (monorail-config,monorail-views,monorail-assets,monorail-lang,monorail-stubs). - CLI generators —
monorail:make-panel,monorail:make-resource,monorail:make-page. Each is documented inline in its feature guide.
- Server-Driven UI — the pattern, the three-move extension mechanism (PHP class → React renderer → feature test), and when SDUI is the wrong tool.
- Customizing the Frontend —
register custom fields, widgets, blocks, and pages from your host app
via
createMonorail()without forking the package.
- Contributing guide — dev setup, test conventions, PR expectations.