crumbls/layup
Layup is a Laravel package for building dynamic, reusable page layouts. It provides a clean API for defining sections and rendering them in Blade, helping you keep page structure organized, flexible, and easy to maintain. Ideal for CMS-driven sites and admin panels, with minimal boilerplate.
crumbls/layup adds templated page management to Filament panels. The minimum path to a working page builder:
composer require crumbls/layupphp artisan vendor:publish --tag="layup-migrations" then php artisan migratephp artisan vendor:publish --tag="layup-config"->plugin(LayupPlugin::make()))Where to look first: the package's Filament resource (the Pages list/create actions) and the config file's template registration. The first useful use case is creating a page from a template and confirming the template body is populated immediately on creation — this is exactly the behavior fixed in v1.7.0 (#78 / #79).
Requires Filament 5 / Livewire 4.
Create-from-template via the Filament action. The standard workflow is clicking "New Page" in the Layup resource, choosing a built-in or saved custom template, and saving. In v1.7.0 the template is resolved at the moment the page is created, so the new page immediately holds the template's content.
Programmatic creation. When creating pages from your own code/actions, pass the template selection into the create call and let Layup resolve content at create time rather than writing a blank page and patching it afterward. The regression fix confirms resolution happens during creation.
Custom vs. built-in templates. Built-in templates ship with the package; saved custom templates are persisted records. Both are selectable in the same picker, and both now correctly seed content on creation.
Changing templates mid-form. If the user switches templates before saving, the final selection wins. If the user clears the selection entirely, they get a deliberately blank page — a useful "start from scratch" path you can lean on instead of building a separate blank-page action.
Testing integration. Mirror the package's own approach: drive the real Filament/Livewire page-creation action in your feature tests (Livewire component tests against the create-page action), asserting the saved page body matches the selected template. This catches regressions when you override resources or actions.
composer update crumbls/layup --with-dependencies. Dependency constraints are unchanged.How can I help you explore Laravel packages today?