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

Phpagebuilder Laravel Package

hansschouten/phpagebuilder

PHPageBuilder is a drag-and-drop page builder for PHP applications. It lets you create and edit pages visually with customizable blocks, manage layouts, and store content in a database. Framework-agnostic, works with Laravel or plain PHP, with multilingual support and an extensible block system.

Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • Framework-agnostic PHP library rather than a Laravel package: no service provider, no publishable config/migrations, no Blade components, no Eloquent models. It is a rendering engine plus editor UI, so Laravel must own the application shell, auth, persistence, and routing.
  • Likely fits as an authoring layer that emits a stored page definition (JSON/HTML) which Laravel renders through its normal view pipeline. That is a good boundary: builder stays a content-production tool, Laravel stays the delivery runtime.
  • Mismatch risk with an existing CMS/Admin stack (Filament, Nova, custom Blade admin): the builder ships its own drag-and-drop front end, asset bundle, and possibly its own routing/controller layer. Two competing admin surfaces is an architecture smell that must be resolved before adoption.

Integration feasibility

  • Feasible as a bounded-context integration: Composer require, thin Laravel adapter package (service provider, config, routes under an auth+permission middleware group, a Page model and page_revisions table), and a renderer that compiles stored JSON to Blade/HTML.
  • Requires custom work not provided by the package: storage abstraction (does it persist files, DB rows, or nothing?), media/asset handling, i18n, draft/publish state machine, revision history, and permissions. Budget this as build effort, not configuration.
  • Unknown repository URL and a low composite score (28.31, opportunity 26.99) are diligence red flags — treat the "874 stars" as popularity, not production readiness.

Technical risk

  • Maintainer/bus factor: single-author package, no visible corporate backing. High probability of needing an internal fork; plan for vendoring or a private fork from day one.
  • Security: a drag-and-drop HTML builder is an XSS and stored-injection surface by design. Any user who can author blocks can likely persist script/iframe/event-handler payloads. Needs server-side sanitization (HTMLPurifier-class allowlisting), CSP, strict author roles, and a review step before publish.
  • Schema/version drift: saved page JSON is a long-lived artifact. Without a documented block schema and migration strategy for saved content, upgrades silently break published pages.
  • Asset coupling: builder CSS/JS bundles can collide with the host admin's front-end stack (jQuery/Bootstrap/Tailwind/Vite). Verify before committing.
  • Abandonment: if upstream stalls, PHP/Laravel major-version upgrades become your problem.

Key questions

  1. Where does it persist pages — DB, filesystem, or caller-supplied callback? Is there a storage interface we can implement against Eloquent?
  2. Is the saved format documented and versioned, and is there a migration path for stored content across releases?
  3. What is the security posture on author-supplied HTML/JS — does it sanitize, and can we hook our own sanitizer?
  4. Does it impose routing, sessions, or global middleware, or can it be mounted inside an existing authenticated admin route group?
  5. Supported PHP/Laravel versions and the maintainer's release cadence over the last 24 months?
  6. Front-end dependencies (framework, build tooling) and are they isolated or global?
  7. License/attribution obligations beyond MIT (bundled editor assets sometimes carry separate licenses)?

Integration Approach

Stack fit

  • Laravel 10/11/12, PHP 8.1+, MySQL/Postgres. The package is a library, so the correct pattern is a thin first-party adapter: config/pagebuilder.php, a service provider, a Page/PageRevision Eloquent pair, a PageRepository implementing the package's storage contract, and a PageRenderer that maps stored blocks to Blade partials.
  • Keep the builder confined to an authenticated admin route group (/admin/pages/{page}/edit) with policy-gated access; never expose authoring endpoints publicly.
  • Render published output as cached, sanitized HTML (or Blade with escaped block data) — do not render raw stored markup on the public site without a sanitization pass.

Migration path

  • Phase 0: spike in a scratch Laravel app — persist one page, render it, attempt a script-injection payload, and confirm the builder does not fight Vite/Tailwind in the admin layout.
  • Phase 1: adapter package with storage, rendering, and sanitization. Freeze the block schema we actually use.
  • Phase 2: backfill — if existing pages live in Blade templates or a CMS, define a one-way import to builder JSON, or accept a dual-run period where legacy pages stay static.
  • Phase 3: author training and publish-workflow rollout; retire legacy editing paths.

Compatibility

  • Pin the package version exactly in composer.json and lock it; add it to the dependency-review list. Verify PHP/Laravel constraints against our supported matrix, and confirm no transitive dependency conflicts with existing admin tooling.
  • Confirm editor browser support and mobile/tablet authoring behavior before promising it to content teams.

Sequencing

  1. Diligence spike (1–2 weeks): storage contract, security test, asset isolation, license review.
  2. Fork/vendor decision and internal ownership assignment.
  3. Adapter + sanitization + permissions (the bulk of the work).
  4. Content model freeze and import tooling.
  5. Pilot with one content team, then general rollout.

Operational Impact

Maintenance

  • Assume ongoing internal ownership: an adapter to maintain, a fork to patch, and a schema migration tool for stored page JSON. Budget roughly a part-time engineer for the first two quarters, tapering to upgrade-driven work.
  • Establish a block-schema version field in stored pages and a migration script per breaking change — this is the single highest-value operational control.

Support

  • Two distinct support populations: content editors (builder UX, block behavior, publishing) and engineers (rendering, sanitization, upgrades). Editors need documented block inventory and a "when to escalate" path; without it, every layout question becomes an engineering ticket.
  • Publishing failures should fail closed (page stays on last good version) rather than emit half-rendered markup.

Scaling

  • Delivery scaling is a Laravel concern, not the builder's: cache compiled HTML at the edge/CDN, invalidate on publish. The builder itself only runs in the admin path, so authoring load is negligible.
  • Watch media handling — large image uploads and asset storage will hit limits before the builder does.

Failure modes

  • Upstream abandonment or an unpatched XSS: mitigated by fork + sanitizer + CSP.
  • Stored-schema drift after upgrade: mitigated by versioned schema and regression fixtures of real pages.
  • Admin asset collision breaking the editor UI: mitigated by isolated bundle/layout for builder routes.
  • Rendering divergence between editor preview and published output: mitigated by rendering preview and publish through the same code path.
  • Unauthorized publishing: mitigated by policy + draft/publish separation and audit logging.

Ramp-up

  • Engineers: 1–2 weeks to understand the storage contract and rendering path, plus the fork workflow.
  • Editors: half-day hands-on plus a block reference guide; expect a 2–4 week productivity dip during migration from existing templates.
  • Recommend a named internal owner for the fork and a written upgrade runbook before the first production page ships.
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.
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk