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

Page Layout Bundle Laravel Package

it-blaster/page-layout-bundle

A PHP bundle for configurable page layout management, letting you define layout templates and reusable blocks to compose and render page structure consistently across your application.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • The headline finding is a cataloguing error, and it gates everything else. it-blaster/page-layout-bundle is a Symfony bundle built for Sonata Admin, not a Laravel package. It ships no service provider, no publishable config/*.php, no facades, and no Blade views. It cannot be composer required into a Laravel app and expected to boot.
  • For a Laravel roadmap, the real decision is "do we port the concept?" — not "do we install the dependency?" That distinction should be settled in one meeting before any engineering estimate is produced, because it changes the effort from hours to weeks.
  • The genuinely reusable asset is narrow and identifiable: the Gridstack.js drag-and-drop integration over a Bootstrap grid, plus the JSON layout-persistence shape behind it. That pattern is portable; the package is not.
  • Five stars, zero dependents, score 0.055. Treat this as a reference implementation and a possible 1–2 day spike, not a candidate line item in a release plan. Its strategic value is de-risking a roadmap item ("non-engineers build pages without a deploy") by proving the layout editor is commodity work.

Integration feasibility

  • Against Laravel: not feasible as a dependency. Feasible as a reference — copy the JS wiring and serialization format, translate Twig to Blade, rebuild the admin surface as a Livewire/Inertia component.
  • Against Symfony + Sonata: feasible in principle, but only worth evaluating if Sonata Admin is already in production. Adopting a heavy admin generator solely to gain a layout editor is a bad trade and a decision that outlives the feature.
  • Asset pipeline is an unknown and likely an Encore-era assumption. In a Vite/asset-mapper context that is a rewrite of the build integration, not a config change — worth flagging early because it is routinely underestimated.

Technical risk

  • Maintenance risk: high. Single vendor, no visible CI, no test suite signals, no security policy, no release cadence. Assume no upstream patches.
  • Constraint drift: high. Bundles of this vintage typically pin Symfony 4/5-era constraints and a legacy Gridstack.js. Gridstack is now v10+/v11 with breaking API changes, so a pinned version means no fixes on the drag/drop layer.
  • Transitive surface: moderate. Sonata pulls Sonata Core, Block, Doctrine extensions, Twig, and an asset toolchain — every one an inherited upgrade liability.
  • Abandonment is the dominant risk and it compounds: an unmaintained wrapper over a fast-moving JS library is a scheduled future migration.
  • MIT license is clean. There is no legal blocker, only engineering ones — which is exactly the shape of decision a TPM should escalate rather than absorb.

Key questions

  • Are we actually Symfony + Sonata, or is "Laravel/PHP" in the request a cataloguing error? This single answer determines scope.
  • Is the requirement freeform drag-drop, or would a fixed-slot block/template picker satisfy users? The cheaper answer is usually the latter, and it wins on accessibility and responsive behaviour.
  • Who owns the layout persistence schema, and must it survive a future Gridstack upgrade?
  • Is Gridstack.js pinned, and is it exposed or buried in a compiled asset?
  • What is our fallback if the vendor disappears — fork and maintain, at what cost, by whom?
  • Does any existing admin already render Bootstrap 4 or 5? The bundle's markup expectations are unknown and likely fixed.

Integration Approach

Stack fit

  • Laravel: poor fit. No bridge exists. Design reference only.
  • Symfony + Sonata: acceptable fit, contingent on version alignment across Symfony, Sonata Admin, Twig, and Bootstrap.
  • Recommended for a Laravel team: framework-agnostic extraction. Lift the Gridstack configuration, event handlers, and layout JSON into a standalone front-end module consumed from Blade.

Migration path

  • Primary: vendored reimplementation. Extract the grid logic and JSON shape, port templates to Blade/Livewire, persist to a first-class page_layouts model with a JSON column. Roughly 1–2 weeks for a competent full-stack engineer, with no upstream dependency and full control.
  • Only if staying on Sonata: Composer install, register in bundles.php, verify/publish assets, validate on a staging Sonata instance before touching production admin.
  • Either path: decouple layout rendering from layout editing so the persisted JSON is the stable contract and the editor is replaceable.

Compatibility

  • Verify PHP, Symfony, Sonata Admin, Twig, and Bootstrap majors before anything else — any mismatch is a hard stop, and this check is cheap enough to do first.
  • Confirm whether assets ship compiled or require a Node build step; the latter is a real CI change in a Vite shop.
  • Check whether Gridstack is used directly or abstracted behind the bundle — abstraction materially lowers future upgrade cost.

Sequencing

  1. Confirm the actual stack (Laravel vs. Symfony/Sonata) — gate decision, no estimate before it.
  2. If Laravel: timeboxed spike of standalone Gridstack in a scratch branch; do not add the Composer package.
  3. Define the layout JSON schema and persistence model first; the editor UI depends on it, not the reverse.
  4. Build the read-only renderer before the editor — users see layout before they edit it, and it validates the schema cheaply.
  5. Ship the editor behind a feature flag, admin-only, with draft/publish so edits are non-destructive.
  6. Only then reassess whether the original bundle's source is still worth referencing.

Operational Impact

Maintenance

  • Adopting the bundle transfers full maintenance ownership to us. There is no realistic expectation of upstream fixes given the repository's signals.
  • Budget a Gridstack.js upgrade project on a 12–24 month horizon, plus Sonata/Symfony major churn if that path is taken.
  • The reimplementation path carries higher day-one cost and strictly lower total cost of ownership, on a codebase the team already understands and can hire for.

Support

  • No vendor, no SLA, no community, no bug-report trail to read. Nobody has hit the edge cases.
  • Documentation is likely README-only; expect reverse-engineering from source.
  • Bus factor of one at the vendor, and bus factor of whoever on our team learns the integration.

Scaling

  • Layout editing is a low-QPS admin operation — no meaningful throughput concern.
  • The real scaling exposure is content-side: rendered layouts must be fragment-cacheable, and the layout JSON must be versioned so schema evolution doesn't require mass rewrites.
  • Client-side Gridstack performance is negligible relative to the maintenance risk.

Failure modes

  • Silent abandonment: a breaking upstream change surfaces as a scramble rather than a scheduled upgrade.
  • Asset pipeline breakage: Encore-era assumptions failing under Vite or a modern asset mapper.
  • Schema drift: saved layouts becoming unreadable after an editor change — mitigate by versioning JSON and writing a migration for every schema change.
  • Scope creep into a full page builder — this package addresses layout, not blocks, revisions, scheduling, or localization. If those are in scope, the editor is the easy 20%, and the plan must say so explicitly.
  • Admin lock-in: the Sonata dependency spreading into unrelated parts of the stack.

Ramp-up

  • Laravel team: near-zero value from reading the bundle directly; ~1–2 weeks to implement Gridstack natively, offset by full control and no inherited dependency graph.
  • Symfony/Sonata team: low ramp to install, high ramp to maintain safely — the install is a day, the ownership is indefinite.
  • Either way, assign a named owner and require a written upgrade/exit plan before production use.

Recommendation for the portfolio: evaluate as a reference, not a purchase. Fund a two-day spike to extract the layout JSON schema and editor UX, do not add it to composer.json, and reframe the roadmap conversation from "can we build a drag-and-drop editor?" to "what content model sits behind it?" — that is where the remaining 80% of the work and cost actually lives.

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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings