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

Voyager Page Blocks Laravel Package

pvtl/voyager-page-blocks

A Laravel package that adds reusable page blocks to Voyager, letting you compose pages from modular content sections managed in the admin panel. Includes block types, page associations, and flexible rendering for faster, more maintainable site building.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This package is a Voyager module, not a general-purpose Laravel content library. It augments Voyager's BREAD (Browse/Read/Edit/Add/Delete) admin model with a page_blocks content type plus a polymorphic-style association so reusable blocks can be attached to pages. Architecturally it is a sound fit only if the application already treats Voyager as its admin surface and Blade as its rendering layer. In a headless, API-first, or non-Voyager stack it is a non-starter: it contributes no standalone domain model, no REST/GraphQL surface, and no admin UI of its own. Treat it as a Voyager feature pack, not an integration dependency.

Integration feasibility. Installation is the standard Laravel package path — Composer require, service provider registration, publish config/migrations/assets, then php artisan migrate. That is a one-day job for a developer already fluent in Voyager. The real friction is not install, it is design: the package assumes a specific page/block content model, so the team must either adopt that model wholesale or write adapters and custom Blade partials. Documentation is thin (README-level), which shifts discovery cost onto the implementer. Expect 3–5 days to a working proof of concept on a Voyager host, not the 4 hours the install steps imply.

Technical risk. The headline risk is lifecycle: archived, last release July 2020. There will be no security patches, no PHP 8.x compatibility work, no Laravel 9/10/11 support, and no fixes for the deprecations that modern PHP emits (dynamic properties, null-to-string coercion in older helper code). It also inherits the lifecycle risk of Voyager itself, which is dormant relative to current Laravel. Secondary risks: supply-chain exposure through an orphaned Composer dependency; content lock-in to a schema nobody is maintaining; and a bus factor of essentially zero. At 75 stars this is a niche package with no meaningful community to fall back on.

Verdict. Adopt only as a vendored, forked dependency inside an existing Voyager codebase where the alternative is rebuilding block content from scratch. Do not introduce Voyager and this package into a greenfield or modern-Laravel application.

Key questions to resolve before commitment:

  1. Is Voyager already a production dependency, and which version?
  2. What are our hard pins on PHP and Laravel, and does this package's 2020-era constraint set actually install?
  3. Who owns the fork, and what is the patch SLA we are committing to?
  4. Does the content model need localization, versioning, or draft/publish workflows this package does not provide?
  5. Is the block schema exportable — can we walk away from it in a quarter if needed?

Integration Approach

Stack fit. Laravel + Voyager + Blade. That is the whole addressable surface. If the stack includes Livewire, Inertia, a separate SPA, or a headless CMS already, this package either duplicates functionality or cannot participate. Confirm stack fit first; everything downstream depends on that single yes/no.

Migration path. Three scenarios:

  • Already on Voyager: lowest-friction path. Composer require, migrate, publish assets, model the existing content into pages and blocks, render via partials. Budget a sprint including content entry.
  • On Voyager, but on a newer Laravel: install will likely fail or require patching. Fork to a private VCS repo, bump constraints, fix PHP 8 deprecations, and add smoke tests before migration. Budget two sprints.
  • Not on Voyager: do not migrate. Re-evaluate against a maintained block-content package or a small in-house model. The cost of adopting Voyager purely to gain this module far exceeds building the equivalent.

Compatibility. Assume a PHP 7.2–7.4 and Laravel 5.8–8 envelope as shipped. Expect breakage on PHP 8.1+ from deprecations and on Laravel 9+ from framework contract changes (service provider signatures, model casting behavior, pagination/Blade internals). Verify by actually running composer require against a pinned target before any planning estimates are socialized.

Sequencing.

  1. Spike: install the package against the exact target versions in a throwaway branch. Hard gate — if it does not install cleanly, stop.
  2. Fork and vendor: move to a private repository, pin the commit, add CI (install + migrate + a render test).
  3. Data model review: confirm the pages/blocks schema supports near-term content requirements before any authoring begins.
  4. Content migration: build an idempotent importer, run against staging, diff rendered output against the current site.
  5. Cutover behind a feature flag, then decommission the old path.
  6. Schedule recurring dependency review — quarterly — because no upstream will tell you when it breaks.

Operational Impact

Maintenance. The package is archived, so maintenance is entirely ours. That means a standing ownership commitment: dependency bumps, PHP/Laravel upgrade compatibility, security triage for the admin-facing surface, and bug fixes discovered in production. Realistically 2–5 engineer-days per year in steady state, and materially more at each framework upgrade. This must be an explicit line item, not an implicit hope.

Support. No vendor, no maintainer, no active issue tracker. Internal documentation is the only support artifact — write it during integration, while the knowledge exists. Identify at least two engineers who can operate the module; a single owner is an unacceptable concentration for a content-critical path.

Scaling. The block model implies per-page queries for blocks plus per-block rendering, which is an N+1 pattern waiting to happen on page render. For a marketing site or internal portal this is fine with response caching and eager loading. For high-traffic or personalized content it will not hold; you would need a render cache or a materialized page output. The admin side (Voyager) is not designed for large content volumes — expect slow BREAD screens past a few thousand records. Assess against the actual content ceiling before committing.

Failure modes.

  • Silent breakage on a Voyager or Laravel upgrade — no upstream to warn you; mitigated only by CI render tests.
  • Admin UI regression that blocks content editors without tripping application monitoring — add an editor smoke check.
  • Migration collision with other Voyager modules sharing tables or BREAD slugs.
  • Content lock-in: if the fork is abandoned, extraction cost grows with every block authored. Keep an export path from day one.
  • Security exposure: admin-editable block content rendered into Blade is a stored-XSS surface; the package will receive no upstream fix, so escaping and sanitization are ours to enforce.

Ramp-up. A Laravel developer new to Voyager needs roughly 1–2 weeks to become productive across BREAD, widgets, and this module's block model; someone already fluent in Voyager needs 1–2 days. Document the block schema, the rendering partials, and the fork/patch process during integration. Factor ramp-up into the support plan — with no upstream documentation, onboarding cost recurs with every new team member.

Overall. Low strategic value, non-trivial ownership cost. Justified only inside an existing Voyager estate where the alternative is a rebuild, and only with a named owner, a fork, and CI.

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.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator