mmoollllee/filament-builder-title
Filament Builder Title adds a builder-style title field to Filament admin resources, letting you compose, edit, and display dynamic titles directly in forms and tables. Lightweight, easy to install, and simple to integrate into existing Filament projects.
Architecture fit. filament-builder-title is a thin UI-layer extension for Filament's Builder and Repeater components. It contributes macros that render an inline, editable title input in a block/row header, replacing the default read-only itemLabel. There is no server-side service, persistence layer, or queue surface — the package is a presentation concern that lives entirely inside the Filament form lifecycle (Livewire state + Alpine DOM). This is a good architectural fit for teams already standardized on Filament: it adds capability without introducing a new runtime, and it composes with existing block schemas via a macro call in a service provider or panel configuration.
Integration feasibility. Integration is straightforward for a Filament-experienced team: register the macro(s), pair Repeater::->title() with Hidden::make($field) so the value is persisted, and ensure any block that uses ->preview() is verified visually. The v0.3.0 changes are additive + a regression fix, not a re-architecture, so there is no large integration lift. The main feasibility question is packaging and support posture rather than code complexity: v0.3.0 is a 0.x release from a single maintainer, so treating it as an internal utility with a pin and a fallback plan is more realistic than treating it as a stable platform dependency.
Technical risk. The dominant risk is coupling to Filament internals rather than to a public contract. The v0.3.0 fix is instructive: the header input reconstructs its wire path client-side from the builder item's DOM (x-sortable-item, x-on:builder-expand.window), because Filament static-renders ->preview() blocks and the server-side path cannot be resolved. That is a legitimate workaround, but it is inherently brittle across Filament minor versions, custom themes, and DOM changes. The v0.2.0 → v0.2.1 → v0.3.0 sequence also shows a regression in editable titles for preview blocks, which is a silent-ish UX failure (titles fall back to read-only labels). Secondary risks: single-maintainer bus factor, pre-1.0 semver (minor releases may include behavioral changes), and an untested-by-us compatibility matrix for Filament/Laravel/PHP versions.
Key questions.
Stack fit. Best fit is a Laravel + Filament panel that already uses Builder with ->preview() blocks and/or Repeater rows needing inline naming. The package requires Livewire/Alpine (implicit in Filament). It is a poor fit for teams avoiding DOM-coupled front-end behavior or those on older Filament versions outside the supported range.
Migration path. Treat this as an additive, opt-in capability rather than a refactor. Recommended path: (1) install with an exact version pin in a scratch/non-critical panel; (2) apply the macro to one builder that includes a preview block and one nested builder; (3) verify title editing persists across reorder, expand, collapse, and nested reorder; (4) only then roll out to additional resources. Keep the change separable per-resource (macro registration in a dedicated service provider or panel boot method) so it can be disabled without reverting code.
Compatibility. Pin to 0.3.0 exactly until a 1.0 or a documented support policy exists. Confirm the Filament version constraint against the installed panel version before upgrading Filament. Because the fix depends on Filament's static-render behavior for preview blocks and the x-sortable-item DOM contract, treat Filament upgrades as requiring a targeted regression pass on title inputs, especially nested and preview blocks.
Sequencing.
Repeater::->title() macro to a non-critical repeater and confirm the Hidden::make($field) pairing persists values correctly.Maintenance. Low ongoing code maintenance, but non-zero upgrade maintenance. The package sits on Filament's DOM/wire contract, so each Filament upgrade is a re-verification event for title binding. Track the changelog and pin versions; a 0.x dependency should not float.
Support. Open-source, single-maintainer, no SLA. Assume no guaranteed response time for edge-case bugs. Mitigation: vendor the package (or fork) if it becomes load-bearing, keep the macro surface small, and document an internal owner for the integration. The v0.3.0 testbench additions (nested demo page, detached/nested path render test, detached-block regression guard) modestly improve the support posture by making regressions in this area more likely to be caught upstream.
Scaling. Runtime cost is negligible: it is header rendering plus Alpine event handling, no additional queries or server round-trips beyond normal Livewire syncing. The scaling concern is not volume but breadth: the more resources and nested builders adopt the macro, the larger the surface that must be re-verified on Filament upgrades.
Failure modes.
Hidden::make($field) → title appears editable but the value is not saved.Ramp-up. Low for Filament developers: the API is a macro call plus a documented pairing with Hidden. Ramp-up is higher for anyone who must debug it, because the core mechanism is client-side path reconstruction from x-sortable-item DOM, which is non-obvious and not discoverable from the Filament docs. Recommend a short internal note covering: the macro registration point, the Hidden pairing, the preview-block caveat, and the upgrade-regression checklist.
How can I help you explore Laravel packages today?