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

Laravel Feature Flags Laravel Package

codinglabsau/laravel-feature-flags

A Laravel package for database-backed feature flags. Define flags, enable or disable them globally or for individual users, and check their status in controllers, Blade templates, and middleware through a simple, expressive API.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. codinglabsau/laravel-feature-flags is a first-party-style Laravel package that slots into the framework's existing service-provider and facade conventions rather than introducing a parallel abstraction. It is a conventional composer-installed library: a service provider, a facade, a config file, and (typically) a migration for a features table. For a Laravel monolith or a small number of Laravel services, this is a low-ceremony fit. It is a poor fit for polyglot estates where flag evaluation must be consistent across non-PHP runtimes — this package is PHP/Laravel-only and would need a separate SDK or a remote-evaluation service to reach other stacks.

Integration feasibility. High for a standard Laravel app. The expected path is composer require, publish config and migrations, run migrations, and optionally register the facade alias. The v1.6.1 release is directly relevant here: it corrects the FeatureFlag facade alias, which was pointing at a nonexistent plural class. That means any team that followed the documented alias registration on v1.6.0 would have hit a class-not-found error on first use of the alias — a first-run integration failure, not a runtime edge case.

Technical risk. Mostly low, with two caveats. First, the package is small and single-maintainer (@stevethomas / codinglabsau), so bus factor and long-term maintenance are the dominant risks, not code complexity. Second, the nature of the v1.6.1 bug is a signal about release hygiene: a facade alias pointing at a nonexistent class is the kind of defect that a smoke test exercising the facade would have caught. The fact that it shipped in v1.6.0 and required a patch suggests thin integration-level test coverage. That is not disqualifying for a flag library, but it argues for pinning versions and validating in a staging environment before production rollout.

Key questions.

  • Is the flag store database-backed, cache-backed, or both, and what is the read path latency per evaluation?
  • Does the package support targeting rules (user segments, percentage rollouts, scheduling), or only static on/off toggles? This determines whether it replaces or merely supplements a hosted flag service.
  • What is the upgrade history — how often have patch releases fixed broken public surface (as v1.6.1 did)?
  • Is there a documented deprecation policy, and is the package tested against the Laravel versions we run? Laravel's release cadence means a small package can silently fall out of support.
  • Does evaluation degrade safely if the flag store is unreachable — default-on, default-off, or throw?

Integration Approach

Stack fit. Requires Laravel (and therefore PHP) with composer. It assumes Eloquent for persistence and the Laravel cache for evaluation performance. It will not fit a non-Laravel PHP service without pulling in the framework's container and database layer, and it will not fit a non-PHP service at all. Confirm the supported Laravel/PHP version matrix against our current runtime before committing.

Migration path. There is no migration from an incumbent system implied by this release — v1.6.1 is a one-line alias fix, not a feature or API change. Adoption is additive: install, publish, migrate, and begin reading flags behind a thin internal wrapper (e.g. an application-level Flags service) rather than calling the facade directly throughout the codebase. That wrapper is the important decision — it insulates application code from the package's API and from a future swap to a hosted provider if requirements outgrow this library.

Compatibility. The patch is backward compatible; it repairs a broken alias rather than renaming a working one. Teams already on v1.6.0 that worked around the bug by referencing the class directly, or that never registered the alias, will see no behavioral change. Teams that registered the broken alias will start working after upgrade, which is the intended outcome. No config or schema changes are indicated.

Sequencing.

  1. Pin to ^1.6.1 explicitly — do not allow v1.6.0 to be resolved by a loose constraint, since that version's alias is broken.
  2. Spike in a non-production environment: install, publish, migrate, and verify the facade alias resolves and a flag can be read and toggled end to end.
  3. Introduce the internal wrapper service and migrate a single low-risk call site (e.g. a non-critical UI variant) behind it.
  4. Expand to additional call sites only after the wrapper and the flag-store read path are validated under realistic cache conditions.
  5. Decide on a default-value convention (fail-open vs fail-closed) before the first production flag is used to gate anything user-facing, and encode it in the wrapper.

Operational Impact

Maintenance. Low ongoing effort but non-zero ownership. The package is small, so the real maintenance task is tracking Laravel major-version support and PHP version bumps. Because the maintainer pool appears to be one person, assign a named internal owner and budget for the possibility of forking or vendoring. Treat the dependency as "acceptable but not strategic."

Support. Upstream support is community/volunteer. Escalation paths are GitHub issues only. The v1.6.1 fix landing as a prompt patch after v1.6.0 is a mildly positive signal about responsiveness, but the defect itself indicates limited pre-release testing of the integration surface. Do not plan on vendor SLAs.

Scaling. Two dimensions matter. Evaluation throughput depends on whether reads are cached; if every flag check hits the database, high-traffic request paths will feel it, and the wrapper should memoize per-request. Flag-store size and rule complexity depend on whether targeting rules exist; simple boolean flags scale trivially, complex percentage rollouts over large user bases need the evaluation path benchmarked. Also consider multi-service consistency: if several Laravel services read the same table, schema and semantics must be coordinated.

Failure modes.

  • Store unreachable or migration not run — behavior depends on the package's default; verify and force an explicit policy in the wrapper.
  • Facade alias misconfiguration — the exact class of failure v1.6.1 fixes; a startup smoke test asserting the alias resolves would have caught it and should be added to our CI.
  • Stale cache — a flag flipped in the database but not visible due to cache TTL; operators need to know the propagation delay before they rely on a flag to disable a broken feature.
  • Version drift — a loose composer constraint resolving to a broken patch (as v1.6.0 was); pin and review patch releases.
  • Silent abandonment — no releases against a new Laravel major; the package still installs but misbehaves. Monitor release cadence quarterly.

Ramp-up. A Laravel developer can be productive in well under a day: the concepts (facade, config, migration) are entirely conventional and the API surface is small. The learning cost is not in the package but in the operational discipline around it — default-value semantics, cache propagation, flag lifecycle and cleanup of dead flags. Budget the real effort there, and keep the internal wrapper thin enough that a future provider swap is a contained change rather than a codebase-wide refactor.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle