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

Filabuilder Laravel Package

rizky-dhani/filabuilder

Filabuilder is a Laravel package that extends Filament with reusable builder components, letting you assemble forms, layouts, and UI blocks faster. It aims to cut boilerplate so you can compose admin panels and resources with less custom code. Early-stage, minimal adoption, so review the source befo...

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • The package is an admin-side content composer for Laravel + Filament: pages are assembled from registered block types (HeroBlock, TextBlock, CtaBlock) that render through Blade views, with the builder UI embedded in a Filament admin panel. That is a natural fit for teams already running Filament as their back-office and wanting marketing/landing-page assembly without a full CMS.
  • Scope is deliberately narrow — block registry in config, block classes in src/Blocks/, builder view in published Blade. It is additive: no core Laravel services, queues, or auth model are replaced, so it can sit behind admin middleware without touching the public request path.
  • Blocker to clean evaluation: the repository description claims a GrapesJS page-builder plugin for Filament, description.md claims a fluent scaffolding API for forms/tables/resources, and the working assessment describes a JSON block builder with Blade rendering. These are three different products. Until the actual code is read, architecture fit is unverified, not "good."

Integration feasibility

  • Low-to-moderate consumer effort in the happy path: composer require, publish config/block views/builder view, optionally migrate if pages persist, register blocks, mount behind admin middleware, render on the front end by looping stored blocks and delegating to each block's view.
  • The real work is not install, it's the surrounding scaffolding: a page model + JSON column, a render loop with a default fallback for unknown/removed block types, server-side validation against each block's rules, and a front-end template. Budget 3–5 dev-days for a production-quality first use case, not the 30 minutes the README implies.
  • v1.0.12 itself is cosmetic (SVG thumbnails → FontAwesome icons). No API, schema, or config changes are called out, so upgrade cost is near zero for anyone already integrated.

Technical risk

  • Identity/documentation risk (high): three conflicting descriptions of what this package does is the single largest risk. It signals either a rename-in-flight, a docs copy-paste, or a README that describes an aspiration rather than the code. A TPM should not size or staff anything until a 1-day code spike resolves this.
  • Maintainer/bus factor risk (high): 0 stars, single-author, score 12.46, first public release line at v1.0.x. Assume no support SLA, no security response process, and possible abandonment. Treat as a dependency you may have to fork.
  • Supply-chain/runtime dependency risk (medium): v1.0.12 makes the FontAwesome 6.7.2 CDN a runtime dependency of the admin UI. Version-pinned (good), but no SRI is called out, and air-gapped/intranet/strict-CSP deployments fail silently as blank icon squares.
  • Content-integrity risk (medium): block payloads are JSON rendered through Blade. The builder UI is not a security boundary — stored block HTML is a stored-XSS surface if blocks permit raw HTML and rendering is not sanitized/allowlisted per block view.
  • Lock-in risk (low-medium): because rendering is your own Blade loop over your own JSON column, exit cost is low. If the package owns the page model and migration, exit cost rises.

Key questions

  • Which product is this, actually — GrapesJS builder, fluent Filament scaffolding API, or JSON block builder? Which of the three is in the tagged code?
  • Does the package ship its own page model/migrations, or is persistence the integrator's responsibility? If it ships them, what does the schema look like and how portable is the data?
  • Is the FontAwesome CDN URL overridable via config, or must we publish and edit the builder view? Is SRI used? Is FontAwesome scoped to the builder or loaded globally?
  • Does block rendering sanitize stored HTML, and who is allowed to author blocks (any admin, or a gated role)?
  • Which Laravel/PHP/Filament versions are supported and tested? Is there a CI matrix?
  • Is there any test suite in-repo, and what is the release cadence/support intent? Is there a license compatible with commercial use?

Integration Approach

Stack fit

  • Appropriate only for Laravel + Filament shops with Blade-rendered admin views. If the team is on Nova, Livewire-only, or a JS SPA admin, this is a hard no.
  • Position it as an admin content-authoring surface for marketing/landing/CMS-lite pages — not as a general page builder for core product UI, and not on public routes.
  • Confirm whether the panel already loads FontAwesome at a different version; duplicate loads and FA5/FA6 class drift are the most likely cosmetic regressions.

Migration path

  • Treat this as a greenfield adoption, not a migration. There is no incumbent data model to migrate; the decision is whether to introduce a new page/block store.
  • Spike first (1–2 dev-days): install on a scratch branch, resolve the identity question, build one page with Hero + Text + CTA, render it on a front end, and confirm the block registry, persistence, and render contract behave as documented.
  • If the spike passes, adopt in a bounded surface (one marketing microsite or one internal landing-page workflow) with the render loop owned by our code, not the package's.

Compatibility

  • Pin to an exact version in composer.json; do not float. The FontAwesome CDN URL should also stay pinned — the docs are right that bumping to @latest can rename icon classes and blank the block menu.
  • Validate against the target Laravel/PHP/Filament matrix explicitly, since no support matrix is advertised. Verify the panel's CSP allows style-src and font-src for the FontAwesome origin, or plan a self-hosted swap via published view.
  • Custom blocks must extend the base block class and return both style and icon class (fa-solid fa-paragraph), not the icon name alone.

Sequencing

  1. Code spike + identity resolution; read src/Blocks/, the base block contract, config, and the published builder view.
  2. Security review: stored-HTML sanitization, author permissions, CDN/SRI and CSP posture, license check.
  3. Decide CDN allowlist vs. self-hosted FontAwesome; if self-hosting, do it at adoption, not after rollout.
  4. Build the thin owned layer: page model/JSON schema, validated render loop with unknown-block fallback, front-end template.
  5. Implement 2–3 real pages in staging; regression-test block output with assertSee; keep builder-HTML snapshot tests narrow and target stable data-* wrappers rather than the icon node.
  6. Gate: if the package cannot be pinned, tested, and forked cleanly, stop and build the block registry in-house — it is a few hundred lines of Blade and JSON.

Operational Impact

Maintenance

  • Ongoing ownership: the pinned FontAwesome reference, the pinned package version, published-view drift, and your own block render loop. Published views go stale on upgrade — composer update will not refresh them, so add a re-publish + view:clear/view:cache step to the release checklist.
  • Track upstream activity quarterly. With 0 stars and one author, budget for the realistic outcome that we maintain a fork; confirm license permits that before adoption.
  • Custom block icons become UI configuration with a single source of truth — pull the icon class off the block class rather than duplicating markup in listings.

Support

  • Expected ticket profile is visual and low-severity: blank or missing icons in the block menu. Publish a runbook with a fixed diagnostic order — view cache cleared and view actually updated → network tab shows FA CSS 200 → CSP not blocking style/font → element has both fa-solid and the icon name → icon name valid in 6.7.2.
  • Second ticket profile is content: an author saves a block that renders wrong or is stripped by sanitization. Document which blocks allow rich HTML and who can author them.
  • No vendor support channel. Escalation path is internal: the owning team reads the source.

Scaling

  • Negligible relative to application traffic — impact is confined to admin builder sessions, and page render is a Blade loop, i.e., a normal cached view.
  • Watch two things at scale: CDN latency on first admin page load in restricted networks, and unbounded JSON growth per page if blocks are large or nested. Cap block count/size per page and cache the rendered front-end output.
  • If page volume grows past a few thousand documents, querying by block type requires indexing into the JSON column; design the schema with that in mind from day one.

Failure modes

  • CDN outage, corporate proxy/firewall block, or CSP rejection → blank icon squares, no error surfaced to the user.
  • FontAwesome version conflict with the panel's existing FA load → wrong or missing glyphs across the admin, not just the builder.
  • Stale published builder view after upgrade → old SVG/blank thumbnails persist indefinitely.
  • Custom block with no icon method → empty menu slot; custom block returning fa-paragraph without fa-solid → nothing renders.
  • Unknown or removed block type in stored JSON with no default fallback → render exception on the public page (highest-severity failure; mitigate in our render loop, not upstream).
  • Raw HTML in block payloads without sanitization → stored XSS in the admin or on the rendered page.
  • Package abandonment → no security patches; mitigated only by pinning and fork readiness.

Ramp-up

  • Low for Laravel/Filament developers: the block contract is small and the render loop is familiar Blade work. Half a day of onboarding plus the runbook.
  • Moderate for security/ops: external CDN review, CSP allowlisting or self-hosting decision, SRI/supply-chain sign-off, and a license check are prerequisites, not follow-ups.
  • Deliver a short rollout note covering: pinned versions, cache-clear steps, CSP/self-hosting decision, icon verification, sanitization policy, and the CDN-blocked failure behavior — so the first "icons disappeared" ticket resolves in minutes rather than a re-investigation.
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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource