serendipity_hq/bundle-features
Serendipity HQ Bundle Features is a Symfony bundle for managing feature flags and toggles. Define features in configuration, enable or disable them per environment or custom logic, and keep optional functionality cleanly separated. Simple integration helps roll out changes safely.
features table, a pivot to plans, and a can() helper. This package is a reference implementation of that slice; the PM decision is whether entitlement logic is core differentiation (build, own it) or undifferentiated plumbing (buy/borrow, keep it boring).Consider it when all of the following hold:
Look elsewhere when:
For executives: We have a recurring need to sell different levels of the product without shipping different versions of the product. That means plan-to-feature mapping has to live in configuration, not in code, or every pricing change becomes an engineering project. There's a small MIT-licensed open-source component that already models features and plans. The strategic value isn't the code — it's that it forces the entitlement conversation now, before billing work starts, and lets us run packaging experiments in days instead of sprints. The risk is maturity: the project is tiny and effectively unmaintained-by-committee, so I'd recommend we treat it as a design reference we vendor, not a dependency we rely on. Cost of adopting the pattern is low; cost of discovering mid-quarter that our paywall rests on an abandoned repo is high.
For engineering: This is a Symfony bundle with a features/plans data model — a shortcut past the "should features be rows or enum cases?" debate. Two caveats before anyone writes an import: it's Symfony, so a Laravel codebase inherits a port rather than an integration; and with ~11 stars and zero dependents, there's no community safety net, so budget for reading the source and owning the migrations. My recommendation is to use it as a specification — mirror the schema and the plan-feature check API — and only take the hard dependency if the team explicitly accepts ownership of a fork. If we need percentage rollouts or experiment assignment, that's a separate tool and a separate decision; this shouldn't be stretched to cover it.
Bottom line: low-risk to learn from, high-risk to depend on. Adopt the pattern, defer the package.
How can I help you explore Laravel packages today?