van-ons/filament-content-builder
A Filament plugin for building flexible, block-based content in Laravel. Compose pages and rich content from reusable components, manage layouts directly in the admin panel, and render structured content without custom CMS boilerplate.
visible() / hidden() methods on blocks let editors and developers gate a block's rendering on runtime conditions (feature flags, user role, locale, schedule, A/B cohort). This turns "hide this section for logged-out users" from a custom Blade conditional into a declarative, per-block configuration — a feature-level decision that reduces bespoke view logic in the CMS layer.Adopt when:
Look elsewhere when:
For executives: A small, low-risk upgrade to our page-building toolkit adds the ability to show or hide individual content blocks at render time — the mechanism behind audience targeting, scheduled content, and flag-gated rollouts of new page sections. It is a minor version with no breaking changes and no deprecation risk, so there is no migration cost and no impact to current delivery commitments. The strategic value is optionality: this capability covers a share of what a licensed CMS or page-builder would charge for, and it lets marketing and content teams ship segmented pages without engineering tickets. The open decision is not whether to upgrade — it is safe to do so — but whether we invest further in this package versus buying a managed CMS; the deciding factors are editorial workflow and audit requirements, not content composition.
For engineering: Purely additive release. New visible() / hidden() methods on blocks give a declarative hook for render-time conditionals, replacing ad-hoc Blade branching and centralizing the logic where blocks are defined. Everything else is housekeeping: Dependabot bumps to release-drafter and setup-php, and removal of van-ons/filament-field-library, which is a dependency-surface reduction rather than a behavior change. Action: bump the constraint, run the suite, add a test asserting hidden blocks do not render and that conditions are evaluated per-request rather than cached. Two guardrails worth stating explicitly: visibility is not authorization, so entitlement and role checks still belong in policies and queries; and any condition depending on request state needs coverage for cached responses so blocks are not inadvertently baked into a shared cache.
How can I help you explore Laravel packages today?