Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Layout Builder

Layout Builder Laravel Package

capell-app/layout-builder

Visual page composition for Capell: layout areas, widgets, reusable widgets, and presets. Editors add, reorder, resize, and edit in admin with reversible changes; visitors get clean public output. Registries and typed Actions offer stable extension points.

View on GitHub
Deep Wiki
Context7

Layout Builder is a free Capell Foundation package that adds a visual page composition workflow to Capell admin. Editors add, reorder, resize, and edit widgets across layout areas, save reusable widgets, and reverse mistakes — without needing a developer for each page. Visitors then receive the saved layout graph as ordinary public output, with no authoring markers leaking to the frontend.

  • Layout areas, widgets, and reusable widgets for composing pages
  • Layout presets saved and inserted as linked sections
  • Reversible edits so composed pages can be rolled back
  • Registries and typed Actions for stable widget and render extension points
  • Clean public rendering verified by safety tests
Frequently asked questions about Layout Builder
What is capell-app/layout-builder?
capell-app/layout-builder is the visual layout and widget composition engine for Capell CMS, shipped in the Capell Foundation product group. It adds drag-and-drop layout areas, widgets, reusable widgets, presets, and reversible layout edits across admin, frontend, and console surfaces. The package namespace is Capell\LayoutBuilder and it is available on the free tier.
How do I install the Layout Builder package in Laravel?
Install it with Composer using composer require capell-app/layout-builder inside a Laravel application that already runs Capell CMS. The service provider is Capell\LayoutBuilder\LayoutBuilderServiceProvider and it registers the admin, frontend, and console surfaces the editor needs. Because it is schema-owning, run your migrations after installation so the layout and preset tables exist.
Which Laravel versions does Layout Builder support?
The package targets the Laravel stack that Capell CMS runs on, so it follows Capell's own Laravel version constraints rather than publishing a separate support matrix. Check the composer.json requirements in the repository before planning a framework upgrade. Non-Laravel stacks such as Symfony or Lumen are not supported because the package relies on Blade and Eloquent.
How do I register a custom widget with the Layout Widget Registry?
Widgets are registered through Capell\LayoutBuilder\Support\LayoutWidgets\LayoutWidgetRegistry, which acts as a stable extension point. You define your widget, register it with the registry, and it becomes available in the editor's widget picker. Additional extension behavior can be attached through the WidgetExtensionRegistry.
Can I reuse layout presets across multiple pages?
Yes. Presets are saved through SaveLayoutPresetAction and can be turned into linked presets with CreateLinkedLayoutPresetAction, then inserted into pages with InsertLinkedLayoutPresetAction. That lets teams reuse approved sections instead of rebuilding the same layout for each page. Linked presets also keep repeated sections consistent when the source preset changes.
Is the public layout output safe from XSS?
Public output is built by BuildPublicLayoutGraphAction, which renders the saved layout graph as ordinary output without exposing authoring markers. The package ships a dedicated test, LayoutBuilderPublicRenderingSafetyTest, covering render safety. Custom widget logic still needs its own escaping discipline, since unsanitized widget content is the main XSS risk in any server-side rendered system.
Does the Layout Builder work with headless or API-driven frontends?
The layout engine is Laravel-native and renders server-side, so hybrid setups usually edit in Capell admin and consume the rendered output or layout graph in the frontend. The public graph is produced as structured data by BuildPublicLayoutGraphAction, which is the natural seam for an API layer. No separate headless API ships with this package, so exposing one is your own integration work.
How does Layout Builder affect performance and caching on complex layouts?
Rendering is server-side and produces the saved layout graph, so deeply nested containers and many widgets increase the work per request. Benchmark with your expected worst-case layout, for example nested containers plus dynamic widgets, before a full rollout. Standard Laravel response and page caching strategies apply, since public output is deterministic for a saved layout.
Can I customize widgets without modifying the core package?
The typed Actions and registries are the intended extension points, so widget definitions, layout widgets, presets, and public render data can be extended without patching the package. Deep customization beyond those seams may still require core changes, so pilot on a non-critical section first. Keeping manual template overrides available is a sensible fallback for edge cases like animations or third-party embeds.
Is capell-app/layout-builder actively maintained, and what are the alternatives?
The package is marked Available in the Capell Foundation bundle, but it has limited public adoption, so community support and third-party tutorials are thin. Maintenance depends on the Capell project itself rather than a broad contributor base. If you need a widely adopted alternative, compare standalone page builders or hand-built Blade templates, and keep a fallback path in case the package stalls.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect