jwderoos/configurable
A Laravel package that adds configurable options to Eloquent models. Define options and values, then build variants with their own attributes and relations—ideal for configurable products, plans, or any model needing selectable configurations. Ships with traits, migrations, and relationships.
Feature/6 introduce attributes) shifts the calculus: configuration can now be declared declaratively on classes/models instead of hand-wiring service provider bindings or maintaining a bespoke settings layer. That lowers the "build" cost estimate and raises the "buy" (adopt) case — but only where the abstraction matches our domain model.v1.1.1 straight to 1.3.0 in the compare link (no 1.2.x release surfaced) are all signals to adopt behind an internal interface so replacement stays cheap.Consider it when:
Look elsewhere when:
spatie/laravel-settings for typed settings with migrations, or Laravel Pennant if the need is really feature flags.config/ plus env vars is the correct answer and adding a dependency is pure overhead.Diligence items before adoption: confirm the exact PHP/Laravel constraints in composer.json, read the attribute implementation for backward compatibility with any existing config registration, and check the changelog gap between v1.1.1 and 1.3.0 (whether v1.2.x shipped and was superseded). Any breaking change hiding in that gap would invalidate the "safe minor bump" assumption.
For executives: We are evaluating a small, low-cost Laravel package that lets engineers declare application settings directly in code rather than building and maintaining a custom configuration system. The 1.3.0 release modernizes it with PHP attributes, cutting boilerplate and aligning it with current framework conventions. Cost of trial is a day or two of engineering time; cost of the alternative is a bespoke settings layer we would own forever. The main risk is concentration — it has a single maintainer — which we mitigate by keeping it behind an internal interface so it can be swapped without touching product code. Recommendation: approve a timeboxed spike, not a platform-wide mandate.
For engineering: Attributes remove the registration ceremony — configurables are declared where they are used, which is easier to read, review, and delete. The API is additive in a minor release, so no migration is expected; pin the version and validate against the test suite. Treat the package as infrastructure, not architecture: import only through our own adapter so the dependency stays replaceable. Before we standardize, one owner should confirm PHP/Laravel version constraints, review the attribute implementation for edge cases with inheritance and model hydration, and verify cache-invalidation behavior under realistic write patterns. If those check out, this is a straightforward win on developer ergonomics.
How can I help you explore Laravel packages today?