loophp/go-unfloc-yourself-bundle
The Go Unfloc Yourself Bundle is a Symfony bundle that opts your site out of Google's FLoC interest-cohort tracking. It automatically sets the Permissions-Policy interest-cohort header, keeping visitor data out of cohort-based ad targeting with almost no configuration.
Architecture fit. loophp/go-unfloc-yourself-bundle is packaged as a bundle — the naming and loophp convention point to a Symfony Bundle (DI extension + Bundle subclass), not a Laravel package with a ServiceProvider. That is a meaningful mismatch for our stack: Laravel will not auto-discover or boot it, and its configuration surface (Symfony Configuration tree, service definitions) does not map onto Laravel's config/*.php + container bindings without an adapter layer we would own. More importantly, the value proposition is narrow: opting out of FLoC is expressed as a response header (Permissions-Policy: interest-cohort=()) and/or a set of hosts to block. In Laravel that is a one-file middleware or a single header() call in a base controller — roughly five lines of first-party code. The package therefore does not reduce our surface area; it adds a third-party dependency, a Go binary, and a framework bridge to replace trivial code.
Integration feasibility. Composer installation is plausible, but the useful artifact is the underlying Go executable (go-unfloc-yourself), not the PHP wrapper. Adopting it means our build and deploy pipeline must produce or fetch a correctly targeted static binary. We have no evidence in the release of CI matrices, test coverage, static analysis, or a published artifact list — the 1.0.0 tag is a single import commit (b1916e4), which is an "initial set of files" drop rather than a hardened release. Semver 1.0.0 here signals intent, not stability.
Technical risk.
Key questions for the maintainer / our spike.
linux/amd64, linux/arm64, musl/Alpine)?Stack fit. Poor-to-adequate. The header-level behaviour fits Laravel cleanly; the delivered packaging does not. Treat the package as reference material for which headers/hosts to emit, and implement the behaviour natively rather than adopting the bundle.
Migration path. If we do adopt it, isolate it behind our own abstraction:
FlocOptOutMiddleware (or a response macro) in our codebase that unconditionally sets the header from config.privacy.floc_opt_out) so it can be toggled per environment.bootstrap/providers.php via a thin ServiceProvider wrapper) and publish its config through mergeConfigFrom.Compatibility. Verify before any code: PHP constraint (^8.x?), Laravel support policy (we are on 10/11), presence of symfony/http-kernel version conflicts against our existing Symfony components (Laravel pulls several), and whether the binary artefacts cover our container base image (likely Debian-slim or Alpine). Alpine/musl and arm64 are the usual gaps.
Sequencing.
Given the evidence, step 2 is the likely terminal state.
Maintenance. High relative to value. A single-commit, single-maintainer package with no release history means we cannot distinguish "stable" from "abandoned." We would own the Symfony-to-Laravel adapter indefinitely, and would need to re-validate on every Laravel major and every PHP minor. The native alternative has zero external maintenance cost.
Support. No documentation, no issue history, no upgrade guide. Internal onboarding would consist of reading source. Expect all support burden to land on the adopting team.
Scaling. The header itself is free — set it once, ideally at the web-server or middleware layer, and the per-request cost is a string copy. The danger is the execution model: if the integration invokes the Go binary per request, that is a process spawn per response and will dominate latency under load. Any adoption must confirm the binary runs at build/boot time or, better, that only static configuration is emitted. Confirm also that the header survives our CDN and reverse proxy — several providers strip or rewrite Permissions-Policy.
Failure modes.
symfony/* on a Laravel upgrade → blocks framework upgrades.1.0.0 version.Ramp-up. Low for the header behaviour (hours for any Laravel developer). Moderate-to-high for the package route: Go toolchain familiarity, cross-compilation, container image variants, and Symfony DI semantics for whoever owns the adapter. Budget roughly one engineer-day for the spike and bridge, versus under an hour for the native middleware.
Recommendation. Do not adopt loophp/go-unfloc-yourself-bundle into the Laravel stack at 1.0.0. Implement the response header natively behind a config flag, document the FLoC/Topics API deprecation caveat with our privacy stakeholders, and revisit only if the project demonstrates a maintained, framework-agnostic core with published binaries and CI.
How can I help you explore Laravel packages today?