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

Feature Flags Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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:

  1. Was Laravel 13 support a composer.json constraint widening, or did it require code changes? Does v5.1.0 remain fully compatible with Laravel 11 and 12?
  2. What is the supported Laravel version matrix and deprecation policy — how long after a Laravel major release should we expect support?
  3. Does the package require a database table for flag state, and is there a cache layer in front of evaluation?
  4. What is the resolution behaviour when flag state is unavailable — fail-open (flag off/on) or throw?
  5. Is there a documented upgrade path and changelog discipline for the 5.x line?

Integration Approach

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.

  • New services on Laravel 13: adopt v5.1.0 directly; it is the first release that supports the target framework.
  • Existing services on Laravel 11/12: v5.1.0 is likely a safe patch-level bump from v5.0.0, but confirm question 1 before rolling it across the estate. If the Laravel 13 work touched container bindings, a regression test pass on the older majors is warranted.
  • Services on Laravel 10 or earlier: v5.x is presumably out of scope; do not assume v5.1.0 back-ports.

Compatibility sequencing:

  1. Pin ^5.1 in a single canary service on the target Laravel major; run the existing test suite plus a smoke test on flag resolution.
  2. Validate the storage driver end-to-end — migration runs, flag rows resolve, cache invalidation behaves under a flag toggle.
  3. Establish a written fallback for evaluation failure before any flag gates a revenue path.
  4. Only then expand to additional services, converting flags incrementally rather than as a big-bang cutover from any incumbent tool.

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.

Operational Impact

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:

  • Fail-open vs fail-closed ambiguity. If the flag store is unreachable and the package defaults to "off," a gated feature silently disappears; if it defaults to "on," an unreleased feature silently ships. Neither default is universally correct — this must be decided per flag, and the package's behaviour must be confirmed.
  • Stale cache after toggle. Toggles appear not to take effect, prompting re-toggles and drift between intended and actual state.
  • Orphaned flags. Flags left at 100% or 0% for months, with no owner and no removal, accumulating dead conditionals in code.
  • Framework lag. A future Laravel major ships and this package has not yet caught up — as nearly happened here — blocking framework upgrades across the estate. Track this as a recurring dependency risk, not a one-time install decision.

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.

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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox