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

Settings Laravel Package

nhwin/settings

A Laravel package for database-backed application settings. It offers a simple API to get, set, and manage grouped configuration values at runtime, with caching support for fast access and a clean way to avoid hardcoding editable options.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Runtime-editable configuration without redeploys. A settings package lets non-engineers change behavior (limits, copy, toggles, provider endpoints) from an admin surface instead of a ticket-and-deploy cycle. This is the primary product decision it unlocks: can support/ops change this themselves, or does it need engineering?
  • Feature and plan gating on the roadmap. Persisted, typed settings are the cheapest substrate for entitlement-style behavior (per-plan quotas, beta access, per-tenant overrides). It is not a substitute for a real feature-flag platform once you need targeting rules, percentage rollouts, or audit-grade change history.
  • Per-tenant / white-label customization. If the roadmap includes multi-tenancy or branded deployments, this defers the "config sprawl vs. hardcoded constants" fork in the road by a year or more.
  • Build vs. buy (make vs. adopt). The alternative is a bespoke settings table plus a cache wrapper plus casts. That is roughly 2–5 engineer-days to write and, more expensively, an ongoing surface nobody owns. Adopting a package trades that for a dependency.
  • Prioritization framing. Treat this as plumbing, not differentiation. It should never win a quarterly planning debate; it should be approved or rejected in a 30-minute spike based on time-to-integrate and exit cost. If it's consuming roadmap oxygen, scope is wrong.
  • Not supported by this package: secrets management, high-write-frequency config, cross-region consistency guarantees, or anything requiring tamper-evident audit trails.

Evidence caveat: the v2.0.0 release notes contain only a changelog diff link against v1.1.2 — no migration guide, no enumerated breaking changes. A major-version bump from 1.x is a strong signal that public APIs, config file shape, or storage schema moved. Until the actual diff and upgrade guide are reviewed, the recommendation below is conditional, not approved.

When to Consider This Package

Consider adopting when:

  • The application is Laravel and already leans on Eloquent and the framework cache; you want a settings store that fits existing conventions rather than a new paradigm.
  • You have a concrete, near-term need — an admin settings screen, tenant overrides, or plan limits — within the next one to two releases.
  • The settings surface is read-heavy and write-light: hundreds to low thousands of keys, changed by humans or admin jobs, not by request-path writes.
  • You need typed values (bool/int/array/datetime) rather than raw strings, so consumers aren't re-parsing JSON at every call site.
  • You're willing to own the upgrade path. A 1.x → 2.x migration means someone reads the diff, writes a migration, and verifies cache invalidation in a multi-server or multi-queue deployment before rollout.
  • Maintenance signals check out: recent commit cadence, a published test suite, tagged releases, and evidence the maintainer responds to issues. Verify bus factor — small single-maintainer packages are fine for plumbing, but name an internal owner.

Look elsewhere when:

  • Secrets, API keys, or credentials are in scope. Use a dedicated secrets manager. A database-backed settings table with app-level encryption is not a credential store, regardless of what cast options exist.
  • You need real feature management — targeting segments, percentage rollouts, experiment analysis, approval workflows. Use a purpose-built flag service.
  • Write volume or consistency matters. Cache-through settings stores are eventually consistent by construction; if a stale read causes a billing or authorization error, this is the wrong tool.
  • The v2.0.0 delta stays undocumented. If no upgrade guide or changelog detail exists, the correct posture is to pin v1.1.2 for existing work and block new adoption on a review. Don't ship a major-version dependency on faith into a production admin surface.
  • You only have three or four static settings. A config file and a deploy is cheaper than a dependency, a table, a cache key, and an admin UI. Adopt when the edit velocity justifies the machinery, not before.
  • The package is the only thing standing between you and a supported first-party or widely-adopted alternative with comparable ergonomics — prefer the one with the larger maintenance surface.

How to Pitch It (Stakeholders)

For executives (one paragraph): This is commodity infrastructure that lets the product team change configuration — limits, toggles, per-customer overrides — without an engineering release each time. The business value is cycle time, not capability: it compresses "support asks engineering for a one-line change" from days to minutes and removes a recurring tax on the roadmap. It is not a strategic bet and should not be resourced like one. Recommendation: approve a short, time-boxed evaluation (roughly a day of engineering) and gate production adoption on a documented upgrade path for the new major version — the v2.0.0 notes currently don't describe what breaks, so we should not commit to it blind. Expected cost is low; the downside if we skip it is a small bespoke system we build and then maintain ourselves.

For engineering: It's a drop-in, Eloquent-backed settings store with caching and typed casts — the standard shape for this problem. Two things to resolve before we merge it anywhere: (1) v2.0.0 is a breaking release and the notes are a bare diff link, so read the actual diff, identify schema and API changes, and write the upgrade steps; (2) prove cache invalidation works under our deployment topology — multiple app servers, queue workers, and any config cached at boot — because a settings store that goes stale on one node is worse than a config file. Also assess what happens when the settings table is unavailable during boot, and whether reads are safe to place on a request path. If those check out, it's a straight win over building our own. If they don't, pin 1.1.2 or defer.

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.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator