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

Filament Db Config Laravel Package

inerba/filament-db-config

DB Config is a lightweight Filament plugin offering a database-backed key/value store for application settings and editable content. Manage config values and content directly from your Filament admin panel without touching files or redeploying.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for "editable settings": every admin panel eventually needs a config screen (site name, contact email, maintenance toggle, footer copy, homepage hero). In-house that's roughly 3–5 dev days plus a permanent surface to maintain; this package collapses it to a Composer install, one vendor:publish, one migration, and a make:db-config scaffold. The decision to make is not "do we need this?" but "is a key/value store the right shape for what we need?"
  • Roadmap: ship admin-editable content without a CMS. It explicitly targets "editable content" — hero blocks, landing sections, about text — which lets us defer or avoid buying a full CMS (Statamic, WordPress headless) for marketing/landing surfaces. That's a six-figure-or-multi-month class of decision being deferred at 37 stars of risk.
  • Feature-flag-lite / operational toggles. maintenance_mode, allow_comments, posts_per_page style switches can be flipped by non-engineers via the panel instead of a deploy. Good for ops-owned parameters, not for anything that must be consistent across a fleet or evaluated at sub-second latency with strict guarantees.
  • Non-technical editor enablement. The core product value is decoupling "change the footer email" from "file a ticket for an engineer." That's a support-cost and cycle-time metric, not a features metric — worth measuring (tickets/quarter tagged content-change).
  • Use cases that fit cleanly: internal tools and back-offices already on Filament; MVP/prototype admin surfaces; a handful of settings groups (< ~10 groups, < ~100 keys) edited by 1–20 trusted staff; multi-tenant if tenants are few and settings are global-per-instance.
  • Use cases that should route elsewhere: secrets/API keys (plain JSON column, no encryption-at-rest story), approval/audit workflows, per-field permissions, high-cardinality tenant config, structured relational content (this is not a content model), localization-heavy copy.

When to Consider This Package

Adopt when most of these hold:

  • Our stack is already Laravel 12 + Filament 4/5. Requirements are unusually tight — Laravel 12 and Filament 4/5 only. If we're on Laravel 10/11 or Filament 3, stop here.
  • We need settings and short editable copy, not a content model. If it needs relations, revisions, or editorial workflow, it's the wrong shape.
  • The blast radius of a bad edit is small and reversible (copy, toggles, labels) — not billing logic or access control.
  • Our team accepts vendor risk: 37 stars, 0 dependents, single maintainer, MIT. That's fine for a small surface area we can fork; not fine as a load-bearing dependency.
  • We can wrap it behind an internal seam (see pitch) so the read API (db_config()) is ours, not the vendor's.

Look elsewhere when any of these hold:

  • Secrets or credentials → env vars + a secret manager. Do not put these in a JSON column.
  • We need typed, validated, namespaced settings objects with IDE support and a mature ecosystem → Spatie Laravel Settings is the higher-adoption answer, at the cost of writing settings classes and migrations.
  • Audit trail, approval, or "who changed what when" is a compliance requirement → build on a real settings package with events/logging, or a proper admin CRUD resource.
  • Multi-tenant config at scale, or read-heavy hot paths → cache-forever defaults (ttl: null) mean a write must invalidate correctly across every consumer; if we can't reason about that, use config files or a dedicated config service.
  • Enterprise support / SLA / long-lived critical dependency → no commercial backing.

Two specific diligence items before committing:

  1. Docs conflict: the README documents a two-argument make:db-config {name} {panel} while the bundled agent skill says "NEVER add a second argument." Someone will hit this on day one; pin the behavior against the installed version.
  2. The skill explicitly instructs "do NOT create tests" for settings pages. Reasonable for velocity, but it means settings wiring ships untested. As PM I'd require one smoke test asserting a written value reads back through db_config() — cheap insurance on the one thing that can silently break a site.

How to Pitch It (Stakeholders)

To executives — one paragraph: "A small, free, MIT-licensed plugin that gives our admin panel a ready-made settings screen, so marketing and ops can change site copy, contact details, and operational toggles themselves instead of filing engineering tickets. It replaces roughly a week of custom build and ongoing maintenance with an afternoon of integration. The trade-off is that it's a young, single-maintainer open-source project — we contain that by using it only for low-risk settings and isolating it behind our own interface, so swapping it out later is a contained change, not a rewrite."

To engineering — the ask: Install, publish the migration, scaffold settings groups with php artisan make:db-config {Group}, define fields in the generated page's form() with ->statePath('data'). Read via db_config() / @db_config; use safe_db_config() anywhere that runs before the DB is guaranteed available (service providers, middleware, migrations). Set a real cache.ttl and a unique cache.prefix rather than relying on cache-forever. Wrap all reads behind our own Settings facade or interface so no feature code imports Inerba\DbConfig\DbConfig directly. Add one round-trip test per settings group.

Risks to name out loud, with mitigations:

  • Vendor risk (37 stars, 0 dependents, 1 maintainer). Mitigation: MIT + small codebase = forkable; keep the abstraction seam; budget a half-day to vendor the package if it stalls.
  • Version lock (Laravel 12, Filament 4/5). Mitigation: confirm against our pinned versions before committing; treat any major framework upgrade as a re-evaluation gate.
  • Settings live only in the DB. There is no config-as-code, so staging and production drift and nothing is in git. Mitigation: decide whether settings are environment-specific (fine) or should be reproducible (then seed/export them), and document the answer.
  • Silent breakage. Cache-forever plus no tests means a wrong key or stale cache shows up as a wrong string on a live page. Mitigation: the smoke test above, plus a "Settings" permission granted only to named roles.
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.
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin