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 Cookie Consent Laravel Package

jeffersongoncalves/filament-cookie-consent

Add GDPR and CCPA-compliant cookie consent to your Filament panel via an admin Settings page. Customize colors, position, theme, and content from the dashboard, with database-driven settings powered by spatie/laravel-settings. Works automatically, no Blade edits needed.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is a thin Filament panel plugin, not a general-purpose consent platform. Its entire value is a render-hook integration: CookieConsentPlugin::make() registered in a PanelProvider injects a head script and a body banner automatically, and optionally registers a Settings page under the "Settings" nav group. It delegates the actual consent logic to jeffersongoncalves/laravel-cookie-consent (now ≥4.2) and persists configuration through spatie/laravel-settings.

Critical scoping finding: the README is explicit that render hooks target Filament panel pages. That means this package delivers consent UI over your admin/back-office surface, not your customer-facing application. If the compliance driver is marketing cookies, analytics tags, or ad pixels on the public site, this package does not solve that problem — you would need the underlying laravel-cookie-consent package wired into the app's own layout, or a different vendor. Confirming which surface is in scope is the single highest-value question before any engineering time is spent.

Integration feasibility. Mechanically low effort: composer require, publish two migration sets (Spatie settings plus the package's own), php artisan migrate, register the plugin, done. No Blade edits, no asset publishing required. The ->settingsPage(false) escape hatch supports a config-only deployment if you don't want editors touching consent copy.

Technical risk.

  • Version coupling is aggressive. Requires PHP 8.2+, Laravel 11+, and Filament ^5.3. Filament 5.x is a narrow adoption window; teams on Filament 3 or 4 must use the 1.x or 2.x branches, which have diverged feature sets (the Compliance section and Google Consent Mode v2 land only on the current line).
  • Semver discipline is weak. v3.2.1 shipped a breaking minimum-version bump to ^5.3 inside a patch release, driven by an upstream Filament signature change. Expect forced upgrades timed to Filament's schedule, not yours.
  • Dependency depth. Effective chain is Filament → filament/spatie-laravel-settings-plugin → spatie/laravel-settings → laravel-cookie-consent → filament-plugin-core (introduced at v3.3.0). Five transitive surfaces, all single-maintainer-adjacent, all of which can break the banner.
  • Bus factor of one. Nine stars, zero dependents, one author. MIT licensing is the mitigation — the code is small enough to fork and vendor if the maintainer walks.
  • Compliance claim is unvalidated. "GDPR & CCPA compliant" is a vendor assertion in a README, not an audited certification. The package renders a banner; it does not appear to provide consent records, audit trails, per-category cookie blocking, or withdrawal logging. Those are the artifacts a regulator or DPO actually asks for.

Key questions.

  1. Which surface must be compliant — the Filament panel, the public site, or both?
  2. Do we need a defensible consent record (timestamp, version, categories, subject) for audit? If yes, this package is a UI layer and we own the logging.
  3. How do we block non-essential scripts until consent is granted? Does our tag strategy already gate on dataLayer/Consent Mode v2?
  4. Are the configurable CSS/JS asset URLs served from our origin? Loading consent-banner assets from a third-party CDN before consent is itself a transfer/consent problem.
  5. Who is accountable for legal sign-off, and against which jurisdictions (EU/UK GDPR, CCPA/CPRA, LGPD)?

Integration Approach

Stack fit. Clean fit only if you are already on Laravel 11+/PHP 8.2+ and Filament 5.3+. If the panel is on Filament 3.x or 4.x, you inherit an older branch with a different feature set; if you're mid-migration to Filament 5, this becomes a passenger on that migration rather than an independent workstream.

Migration path.

  1. Verify the panel's Filament and Laravel versions against the compatibility matrix before committing; this is a hard gate.
  2. Publish and review both migration sets in a branch — the Spatie settings migration and cookie-consent-settings-migrations. Confirm table names don't collide with existing settings tables in a multi-panel install.
  3. Register the plugin in one non-production panel first, with settingsPage() enabled so you can inspect the default configuration surface.
  4. Seed settings via a seeder rather than pointing-and-clicking in the UI, so environment promotion is reproducible and code-reviewable.
  5. Add the settingsPage(false) variant to a staging panel to confirm the config-only path works for environments where editorial access isn't wanted.

Compatibility. Pin an exact version in composer.json (e.g. 3.7.*, not ^3.0) — patch releases have carried breaking minimum-version bumps. Lock the Filament minor version alongside it. Budget a recurring review cadence for Filament upgrades, since this package tracks Filament's Page::routes() signature.

Sequencing.

  • Phase 0 (1 day): Version audit, surface scoping, legal/DPO conversation about what "compliant" means for us specifically.
  • Phase 1 (2–3 days): Install, publish, migrate in a scratch panel; render the banner in all four positions; verify 19-language labels and RTL if relevant.
  • Phase 2 (3–5 days): Cookie inventory. Enumerate every cookie and script the panel and site set, classify essential vs. non-essential, and confirm the banner's opt-in/opt-out mode actually gates the non-essential ones. This is where compliance work lives, and no package does it for you.
  • Phase 3: If Google tags are in play, enable Consent Mode v2 and confirm the head hook renders before filament-gtm/filament-gtag — the release notes assert this ordering, but validate it in the rendered HTML.
  • Phase 4: Configure assets, copy, colors, and privacy-policy URL through the settings page; promote via seeder to production.

Operational Impact

Maintenance burden. Low code surface, moderate version-churn surface. The package itself rarely needs patching, but it is pinned to Filament's bleeding edge, so your Filament upgrade cadence becomes its maintenance cadence. Assign explicit ownership: one engineer accountable for the Filament version contract and one for the consent copy/legal review.

Support. Documentation is a solid README plus a per-release changelog and an agent-skill file. That is above average for a nine-star package. There is no support contract, no issue-triage SLA, and a single maintainer — treat upstream support as best-effort and keep a fork-ready posture. The MIT license and small code footprint make an emergency fork genuinely viable, which materially de-risks the bus-factor problem.

Scaling. The runtime cost is negligible: two render hooks and a settings read per panel page load. The scaling concern is operational, not computational — with spatie/laravel-settings, configuration is cached, so edits made through the Settings page may require a cache flush to take effect. In a multi-panel or multi-tenant deployment, confirm whether settings are global or panel-scoped; a global consent banner shared across panels with different cookie profiles would be a correctness bug.

Failure modes.

  • Silent non-rendering. A missing migration, a failed settings row, or a render-hook exception yields no banner and no visible error. This is the worst case: a compliance gap that looks identical to compliance. Mitigate with a synthetic smoke check that asserts the banner markup is present on a panel page in every environment.
  • Version-lock failure. A Filament patch release changes the Page::routes() signature and the plugin stops resolving routes — historically this has already happened once.
  • Asset outage. If CSS/JS URLs point at a CDN that goes down or gets blocked by an ad blocker, the banner either renders unstyled (still arguably functional) or not at all (not functional). Self-host the assets.
  • Consent-without-blocking. The banner appears, the user accepts or declines, and nothing actually gates the tracking scripts. Consent UI without enforcement is worse than no UI — it documents non-compliance. Verify enforcement explicitly.
  • Unlogged consent. No audit record means you cannot demonstrate consent was obtained. If this is required, plan to capture consent events to your own store.

Ramp-up. Genuinely fast — an engineer unfamiliar with the package can install and see a banner in under an hour. The expensive learning is not the package: it's the cookie inventory, the legal interpretation of "compliant," and the script-gating work. Budget roughly 80% of effort on compliance substance and 20% on the plugin, and set expectations accordingly with stakeholders who may read the README's compliance claim as a turnkey solution.

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.
adachsoft/changelog-linter
adachsoft/collection
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
adachsoft/php-code-style