doublethreedigital/cookie-notice
A Laravel package for adding a customizable cookie consent notice to your site. Publish config and views, display a cookie banner, and let visitors accept or decline cookies with minimal setup.
Scope of this release. v10.2.2 is a patch release containing two items: a UI defect fix (cookie widget briefly flashing on page load when preferences are already stored, #116) and a Dependabot bump of the GitHub Actions group (#115). No new features, no deprecations, no public API or configuration changes are indicated. The functional change is confined to the initial render path of the banner component — a conditional visibility issue — which is a user-visible polish fix rather than a behavioural change.
Architecture fit. duncanmcclean/cookie-notice is a single-purpose, server-rendered Laravel package: a Blade component plus a small JS layer that records visitor preferences in a client-side cookie. It is config-driven (categories, copy, position, expiry) and ships publishable config, views, translations and assets. There is no database layer, no migrations, no queue or scheduled work, and no service provider surface beyond view/asset registration. That makes it a low-coupling drop-in for marketing sites, brochure sites and simple SaaS front-ends. It is explicitly not a consent management platform: it captures and persists a preference, but it does not gate scripts, block tags, maintain audit logs, handle consent receipts, or support geo-based banner behaviour. Any organisation with CMP-level obligations (regional rule sets, IAB TCF, DSAR evidence) will find the boundary of responsibility sits with the application, not the package.
Integration feasibility. High. The standard path is composer require, publish config/assets/views, register the component in the layout, and read the stored preference from JS (and optionally from the cookie server-side). Effort is measured in hours for a developer already familiar with Blade. The main friction is not installation but the surrounding work: deciding the category model, wiring script gating, and getting sign-off from whoever owns privacy/legal.
Technical risk. Low on the code path, moderate on the operating model.
vendor:publish may not receive this flash fix without republishing — the highest-probability way this release is silently ineffective.Key questions for the maintainer / our review.
resources/views and dist assets, i.e. does it require vendor:publish --force for existing installs?Stack fit. Laravel with Blade layouts and a Tailwind-flavoured default stylesheet. Works cleanly for classic server-rendered apps. Inertia and SPA setups need the component mounted manually in the root template rather than in a Blade layout, and Livewire apps should confirm the banner is not re-rendered inside a component that would reset visibility state. Apps with a strict Content Security Policy must allow the package's inline bootstrap or supply a nonce — verify before rollout, since CSP-blocked JS manifests as a banner that either never shows or never dismisses.
Migration path. From v10.2.1 to v10.2.2: none required beyond a standard composer update plus a diff-and-republish of any published assets/views. From an earlier major: treat as a planned upgrade — review the changelog across the intervening majors for config key renames and view path changes, and schedule it as its own ticket rather than folding it into the patch bump.
Compatibility. Confirm composer.json constraints against our PHP and Laravel versions before pinning. Also confirm browser targets for the JS layer; consent UI must work for the traffic we actually receive, including older mobile browsers and locked-down enterprise clients where storage may be restricted.
Sequencing.
composer.json; review the diff between published vendor views/assets and our overrides.config:cache and view:cache — stale view caches are a common cause of a "fix that didn't apply".Maintenance. Low ongoing effort. Releases are infrequent and mostly dependency housekeeping; the Dependabot commit in this release is representative. Budget a small recurring allowance for version bumps and an annual review of whether the package still meets our compliance bar. Because the maintained surface is small, vendoring or forking remains a credible exit if the project stalls.
Support. Community issue tracker, no vendor SLA, no paid tier. Escalation is internal: name a frontend owner for the banner and a privacy owner for the consent model. Document both in the service catalogue so the component is not orphaned when the original implementer moves on.
Scaling. Negligible server-side cost — the banner is static markup plus a cookie, so it scales with the CDN and adds no request-path load. Watch three things instead: cookie size and domain scoping if we operate multiple subdomains (a consent recorded on www may not be visible on app.), translation coverage if the site is localised, and whether the banner is served from cached HTML that predates a config change.
Failure modes.
vendor/ but not in production; appears as "release shipped, defect persists".Ramp-up. A Laravel developer can install, configure and style the banner in roughly half a day, and validate this patch in under an hour. The real lead time is non-engineering: category definition, copy review and privacy sign-off typically dominate the schedule. Recommend proceeding with v10.2.2 as a low-risk patch, contingent on confirming asset-republish requirements and completing the state-two QA check.
How can I help you explore Laravel packages today?