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

Filament Page Builder Laravel Package

carljanzell/filament-page-builder

A page builder for Filament that lets you assemble pages from reusable blocks. Define custom block types, drag and drop them into flexible layouts, and edit content straight from the admin panel. A practical way to give editors structured control over Laravel site pages.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: The package is a Filament panel plugin that persists page content as ordered, typed blocks in a single JSON column. That is a good fit when editorial layout is free-form, page volume is modest, and content is read as a whole document rather than queried by field. It is a poor fit if the roadmap includes block-level search, content aggregation across pages, per-block localization, or relational integrity between blocks and other entities — a JSON blob forces those into application code or a later re-modeling effort. Confirm the boundary early: this is a page-authoring tool, not a content platform.
  • Integration feasibility: Mechanically low-cost. Composer require, register the plugin in the PanelProvider, add a nullable JSON column with a cast, and the builder is usable. The unknown that dominates effort is the frontend: the package is explicit that it stores blocks; it is not stated that it renders them. If there is no first-party Blade renderer, we own a block-to-view layer, and that layer — not the plugin — is the real deliverable.
  • Technical risk: This is a single-maintainer package with 14 stars, zero dependents, and no field-proven installs we can point to. The version matrix is the sharpest risk: v0.3.1 serves Filament 3, while v0.4.2 requires Filament 4.12.6+ or 5.x and PHP 8.3+, so the maintainer is carrying three Filament majors across two branches. Filament's own release cadence is fast, and the v0.4.2 fix — a Livewire SPA-navigation interaction where a confirm dialog could be bypassed — shows the plugin sits close enough to panel-level configuration that regressions appear at the seams. Also flag housekeeping signals: the vendor name (carljanzell) differs from the repository owner (Darkify19), and the stated last-release date is future-dated relative to normal consumption, so release metadata should be verified against the actual tag history rather than trusted as given.
  • Key questions: Does the package ship a rendering layer, or only the editor? How are custom block types registered and versioned? What nesting depth do columns support, and does the editor stay responsive at 50+ blocks? Is media handled through Filament's file uploads, Spatie Media Library, or raw paths? Is block-level i18n supported? Is there a schema-version key in the stored JSON, and what is the documented migration path when a block's shape changes? What is the CI/test surface, and is raw HTML in a block escaped by default? Who maintains this if the author steps away?

Integration Approach

  • Stack fit: Requires Laravel with a Filament panel (Livewire + Alpine + Tailwind), PHP 8.2+ with 8.3+ for the current branch. Fits an existing TALL admin cleanly. It does not fit API-only services, non-Filament back offices, or a headless-CMS strategy without accepting that the JSON payload becomes our public content contract.
  • Migration path: Brownfield-friendly because the storage unit is one column. Add a nullable JSON column, backfill legacy pages as a single rich-text block so existing URLs render unchanged, and run the new builder only for newly authored pages. Freeze the legacy editor at cutover rather than attempting block-level conversion of historical content.
  • Compatibility: Pin the Filament major and match the branch deliberately — v0.3.1 for Filament 3, v0.4.2 for 4.12.6+/5.x. Note the 4.12.6 floor excludes earlier Filament 4 minors, which will bite if other plugins hold the panel back. Audit the panel's ->spa() setting before rollout, since that is the exact configuration implicated in the known regression.
  • Sequencing: (1) Timeboxed spike on a throwaway branch against our actual Filament version. (2) Define our own renderer contract and a schema_version key inside the JSON so the vendor component is replaceable. (3) Implement views for the block types we actually need. (4) Pilot on one low-traffic content type. (5) Add contract tests that assert stored fixtures still render. (6) General rollout, with the legacy editor retired only after the pilot proves stable across a Filament patch cycle.

Operational Impact

  • Maintenance: We will own the renderer, the block catalog, and most of the Filament-major upgrade treadmill. MIT licensing makes fork-and-own viable, which should be the planning assumption rather than the contingency. Track upstream commits directly; do not expect a deprecation policy or a support window.
  • Support: No commercial backing. Issue-driven community support only, so set an internal owner and a no-external-SLA expectation. Budget for reading source rather than documentation — with this adoption level, the code is the specification.
  • Scaling: A JSON column is fine at document granularity and avoids join sprawl. Watch three things: payload size for media-heavy pages, Livewire hydration cost as block arrays grow in the editor, and the absence of DB-level querying over block content. Cache rendered output as an HTML fragment keyed to a page version rather than re-rendering per request.
  • Failure modes: A Filament minor upgrade breaking the editor; stored JSON drifting from a changed block schema, producing unrenderable pages; the SPA-navigation/confirm class of regression recurring on panel config changes; dangling media references when files are deleted outside the builder; XSS exposure if rich-text or HTML blocks are not escaped on output. Wrap rendering in a try/catch with a safe fallback and log loudly — a single bad block should degrade one region, not 500 the page.
  • Ramp-up: Days, not weeks, for a developer already fluent in Filament to wire the plugin and ship a first set of blocks. The real cost is the renderer plus schema-version discipline. Editors need a short guide covering drag-and-drop and column semantics, particularly the destructive actions that the confirm dialog guards. The 0.4.2 bug is worth a line in that guide as a known-issue note rather than a blocker.
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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core