worksome/feature-flags
A Laravel package for managing feature flags with typed flag classes and model-based scopes. Define flags in code, toggle them per user or entity, and roll out features gradually with a clean, testable API.
What changed in v5.1.0: Two items — a Dependabot bump of actions/checkout from v4 to v5 (CI hygiene only, zero runtime impact) and feat: add support for Laravel 13. The latter is the only substantive line in the release. It is an additive compatibility change: no removals, no deprecations, no config or API changes are announced in the notes.
Architecture fit: worksome/feature-flags is a Laravel-native feature-flag package. Its value proposition in a Laravel estate is that flags are resolved through the framework's own service container, config, and (typically) a database-backed driver rather than an external SaaS SDK — meaning flag evaluation sits inside the request lifecycle with no outbound network hop. That is a strong fit for teams that want flag control without adding a third-party runtime dependency or a per-seat vendor contract. The trade-off is that you own the flag data store, the admin surface, and the rollout semantics; this is a library, not a platform.
Integration feasibility: Low friction on paper. Standard Composer install, published config/migration, and flags declared in code or seeded to storage. The v5.1.0 Laravel 13 support is precisely the kind of release that unblocks adoption for teams standardising on the newest framework major — before it, the package would have been pinned to Laravel 12 or earlier, which is a hard blocker for a greenfield Laravel 13 service.
Technical risk: Low-to-moderate, and concentrated in two places. First, compatibility surface: the notes assert Laravel 13 support but do not state whether it required internal changes (service provider binding updates, container or config API adjustments) or was purely a constraint widening in composer.json. That distinction determines whether v5.0.0 → v5.1.0 is a safe drop-in for existing Laravel 12 users. Second, maintainer concentration: the release is a single feature PR plus bot activity on a community package, with no LTS commitment or security policy visible in the notes. Flag evaluation is on the hot path for gated code, so a maintenance lapse is not cosmetic.
Key questions for the maintainers:
composer.json constraint widening, or did it require code changes? Does v5.1.0 remain fully compatible with Laravel 11 and 12?Stack fit: Assumes a Laravel service on PHP 8.x with Composer-managed dependencies and standard config/ + database/migrations/ conventions. Flags are typically consumed via a facade, Blade directive, or middleware, so integration touches controllers, jobs, and templates rather than infrastructure. No sidecar, no agent, no network egress — a genuine advantage for teams running in restricted network environments or with data-residency constraints.
Migration path: Because there is no prior assessment and this is a first evaluation, treat v5.1.0 as a greenfield adoption rather than a migration.
Compatibility sequencing:
^5.1 in a single canary service on the target Laravel major; run the existing test suite plus a smoke test on flag resolution.Sequencing caution: Do not couple this adoption to a Laravel major upgrade. Land the framework upgrade first, confirm the service is stable, then introduce the flag package — otherwise a flag-resolution defect and a framework-upgrade defect will be debugged simultaneously.
Maintenance: Ownership shifts to the adopting team for flag taxonomy — naming conventions, ownership metadata, and expiry dates. Without a retirement discipline, feature flags become permanent branches in production and the flag store becomes an undocumented second configuration system. Budget for periodic flag-pruning as a recurring chore, not a one-off.
Support: Community-maintained package with no commercial backing evident. v5.1.0 arrived as a single contributor PR, and the only other commit is bot-generated. This is normal for the ecosystem but means framework-major support is best-effort and timing is not contractual — a real planning input if you standardise on this across many services.
Scaling: Flag evaluation is in-process, so horizontal scaling is a non-issue relative to an external SDK, which typically adds a network call or a local cache with staleness windows. The scaling question moves to the datastore: every evaluation that misses cache hits the flag table. Confirm the package caches resolved flags, and size the cache TTL against your tolerance for toggle-propagation delay. At high request volume, a per-request query per flag is the failure mode to design out early.
Failure modes:
Ramp-up: Low for any Laravel developer — the API surface is small and idiomatic, so a competent engineer is productive within an afternoon. The real onboarding cost is organisational: teaching product and QA to interpret flag state, establishing who may toggle in production, and defining the audit expectation for toggle changes. For a TPM, the delivery work is governance and a flag lifecycle policy, not engineering enablement.
Verdict on v5.1.0: A low-risk, additive release whose only material content is Laravel 13 support. It improves the package's standing for teams on the newest framework major and does not, on the evidence given, destabilise existing installs — subject to confirming that the Laravel 13 work was a constraint widening rather than a behavioural change. Worth adopting; the diligence that matters is on storage, caching, and failure semantics, none of which this release addresses.
How can I help you explore Laravel packages today?