qandidate/toggle-bundle
Symfony bundle for Qandidate Toggle that brings feature flags into your app. Define toggles in configuration, check them via the toggle manager, and safely enable or disable features per environment or user without redeploying. Useful for gradual rollouts and A/B tests.
Caveat on fit: the request frames this as a Laravel/PHP package, but qandidate/toggle-bundle is a Symfony bundle. It provides DI services and configuration wired into the Symfony container; it will not drop into a Laravel application without meaningful custom integration. If the codebase is Laravel, this package is effectively out of scope and the comparable first-party option is Laravel Pennant.
Consider it when all of the following hold:
Look elsewhere when:
Before any adoption decision, verify: current maintenance cadence and commit recency, PHP/Symfony version compatibility with your runtime, whether qandidate/toggle (the underlying library, a separate repo) is healthy, test coverage, the config/storage backend options, and whether a maintained fork exists. A recent tagged release is necessary but not sufficient — check commit activity, open-issue responsiveness, and whether releases are substantive.
For executives — the decision in one paragraph: Feature flags are a risk-management capability, not a feature. They let us separate "code is deployed" from "customers can see it," which shrinks blast radius, shortens incident recovery from a rollback-and-redeploy to a config change, and lets us test pricing and onboarding changes on a small cohort before committing. The strategic question is not whether we need flags — we do — but whether we buy a platform, adopt a small open-source library, or build our own. This specific package is a minimalist, self-hosted option. It is cheap and keeps data in-house, but it is a Symfony bundle with very low community adoption and no commercial support, so it is a fit only for a Symfony codebase with modest, stable flag needs and in-house PHP capacity to own it.
Recommendation: Do not standardize on this package by default. Run a two-week spike comparing it against (a) the framework-native option — Laravel Pennant if we are on Laravel, or Symfony's own flag approaches if we are on Symfony — and (b) one mature platform (Unleash for self-hosted, or a SaaS vendor if budget allows). The evaluation criteria should be: stack fit, maintenance health, governance features we will need in 12 months, operational burden, and total cost including engineering time. My expectation is that the framework-native or mature-platform route wins, and this package serves as a useful reference point for what "minimal" looks like.
For engineering — what we would be signing up for:
It is an MIT-licensed Symfony bundle wrapping qandidate/toggle; it contributes DI services and configuration so flags are injectable rather than hand-rolled. The integration work is small; the ongoing work is not. We own the flag store, the evaluation path on every request, the upgrade treadmill, and the cleanup discipline. Two risks to flag explicitly: the dependency chain (qandidate/toggle itself) needs a health check before we commit, and low adoption means we are largely on our own for edge cases and security patches. If we proceed, contain it behind our own thin abstraction so swapping the backend later is a configuration change, not a refactor — and set a flag-expiry policy from day one, because stale flags are how this capability turns into technical debt.
How can I help you explore Laravel packages today?