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 Settings Laravel Package

reworck/filament-settings

reworck/filament-settings provides a Filament admin interface for managing Laravel application settings. Store persistent, editable configuration values and access them throughout your app, making runtime settings easier to maintain without code changes.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • reworck/filament-settings is a Filament panel plugin that adds a settings surface to the admin UI, letting operators edit application configuration (strings, booleans, JSON blobs, possibly uploads) without a deploy. It slots into the TALL-stack monolith pattern: Laravel app + Filament panel + a persistence layer for key/value settings.
  • Fit is strongest for internal/admin-facing apps where non-engineers need to tune values (feature flags, branding, mail templates, integration keys). It is a poor fit for multi-tenant SaaS unless tenancy scoping is confirmed, and it is not a substitute for .env-based secrets management.
  • The critical architectural question is the persistence and read path: whether values are read per-request from the database or resolved through a cached/config layer. A DB hit per settings lookup is acceptable at low volume and a liability at scale.

Integration feasibility

  • Integration is thin by design: composer require, register the plugin in the PanelProvider, publish config/migrations, then declare the settings schema (groups + field definitions) in PHP. Expect hours, not weeks, for a first working page.
  • The gate is version compatibility, not effort. New in 0.4.0: the release adds a configurable page title and a translatable save message (PR #6, first-time contributor). The changelog lists no dependency, framework, or Filament constraint changes, so the compatibility picture from the prior assessment is unchanged until proven otherwise — the last verified activity before this was 2023-04-21, which predates Filament v3 GA (July 2023) and v4. Verify against the target app immediately with composer why-not reworck/filament-settings, and re-read composer.json at the 0.4.0 tag rather than trusting the changelog summary.
  • Note the version is 0.4.0 — still pre-1.0. Under semver conventions a minor bump may carry breaking changes; there is no stability guarantee. Pin to an exact tag or commit.
  • PHP/Laravel/DB compatibility itself is low-risk: standard Eloquent migration against MySQL/Postgres/SQLite.

Technical risk

  • Primary risk — abandonment/staleness, modestly reduced. 0.4.0 is the first release in roughly two years and comes from a new outside contributor, which is weak but real evidence the repo is not fully dead and that the maintainer merges PRs. It does not establish a maintenance cadence: 43 stars, still zero dependents, no CI/release policy disclosed, and the release content is cosmetic. Continue to treat it as an unmaintained library that occasionally receives drive-by patches.
  • Signal value of the release is diagnostic, not functional. It tells you the maintainer is reachable and responsive to small PRs — useful if you intend to upstream a Filament 3/4 compatibility patch rather than maintain a private fork. That is a genuine change to the fork-vs-upstream calculus, and worth one email/issue to the maintainer asking whether a compatibility PR would be accepted before committing to a private fork.
  • Fork cost is the real decision variable. The surface area is small, so a fork-and-bump is plausibly 2–5 engineering days. If the fork estimate exceeds ~5 days, build a thin in-house settings page on spatie/laravel-settings instead.
  • Secrets exposure. Settings UI fields inviting API keys/tokens will land in a DB table; without confirmed encryption casting, that is a compliance finding waiting to happen (DB dumps, read replicas, BI access).
  • Lock-in on schema shape. Settings defined as plugin-specific schema classes are cheap to write and mildly expensive to migrate later; keep the domain layer reading through a project-owned accessor so the plugin is swappable.
  • Supply chain is low concern but now slightly less trivially auditable: a second contributor has commit-adjacent access to the release path. MIT, small dependency tree, small blast radius. Pin the exact 0.4.0 commit and vendor it.

Key questions

  1. Which Filament and Laravel majors are supported in composer.json at tag 0.4.0, and does it boot on the target panel version?
  2. Was the 0.4.0 tag cut with any hidden constraint widening not described in the changelog? Diff composer.json between 0.3.0 and 0.4.0.
  3. Is storage DB-backed, and do reads go through a cache? What invalidates it?
  4. Does it support typed casting (bool/int/json/file) and encrypted values?
  5. Multi-tenancy / per-team scoping — supported or not?
  6. Authorization: does it reuse Filament policies/gates, or is any panel user a settings admin?
  7. Is there an audit trail (who changed what, when)? Required for SOC2-style controls.
  8. Would the maintainer accept an upstream Filament 3/4 compatibility PR (given PR #6 was merged), or is a private fork the only path?
  9. What is the import path from existing config/*.php and .env values?

Integration Approach

Stack fit

  • Target: Laravel 10/11, PHP 8.1–8.3, Filament panel. If the panel is Filament 2.x, this package is a legitimate low-effort win, and 0.4.0's title/translation options are a small UX bonus. On Filament 3.x/4.x, assume incompatibility until proven otherwise and plan the fork or replacement branch from day one.
  • Preferred alternative if constraints fail: filamentphp/spatie-laravel-settings-plugin + spatie/laravel-settings (actively maintained, typed settings classes, cache-backed) — closer ecosystem fit and better long-term support economics.
  • New consideration: 0.4.0's translation support implies i18n surface area. If the operator base is non-English, that is a mild plus; confirm translations are loadable via standard Laravel lang publishing and do not conflict with host-app lang files.

Migration path

  1. Constraint audit (0.5 day): resolve the package against the actual composer.lock in a throwaway branch, pinned to 0.4.0. This is a hard go/no-go.
  2. Upstream probe (0.5 day, can run in parallel): open an issue referencing PR #6 asking whether a Filament 3/4 compatibility PR would be merged. The answer materially changes fork economics.
  3. Spike (1–2 days): stand up one settings group end-to-end in a sandbox — define schema, edit in UI, exercise the new title/label overrides, read in app code, confirm cache behavior.
  4. Fork decision: if the audit fails, choose fork-and-bump vs. rebuild vs. upstream patch. Document the decision with the spike's actual hours, not estimates.
  5. Data backfill: migrate current config()/.env values into the settings table via a one-time seeder, keeping config as the fallback default so a settings-table loss is recoverable.
  6. Cutover: ship behind the admin panel first (read-only, then writable), with the app reading through a project-owned Settings facade.

Compatibility

  • Watch three axes independently: Filament major (plugin registration API and form component API both changed across v2→v3), Laravel major (service provider and migration conventions), PHP version (typed properties, enums). A fork usually needs all three bumped.
  • Assets: if the plugin registers frontend assets via FilamentAsset, expect publish/filament:assets drift after upgrades.
  • 0.4.0 introduces no migration or config-schema change per the changelog, so upgrading on a working 0.3.x/Filament 2.x installation should be low-risk — but verify whether the new page-title option adds a config key that needs republishing.

Sequencing

  • Week 1: constraint audit + upstream probe + spike + fork-vs-build decision.
  • Week 2: schema design by domain (branding, mail, integrations, feature flags), authorization model, encryption for secret fields.
  • Week 3: backfill, admin rollout, runbook, and rollback rehearsal.
  • Do not sequence this before a Filament major upgrade; land the panel upgrade first, then re-evaluate the package against the new baseline.
  • If adopting, adopt 0.4.0 specifically (not ^0.3), so the pinned commit is the one that reflects current upstream.

Operational Impact

Maintenance

  • If adopted as-is, the team owns it. Budget ~1–2 days/quarter to check upstream, plus the full fork cost if a Filament major lands. Treat the fork as a first-class internal package: vendored, pinned to a commit, with a named owner.
  • 0.4.0 slightly improves the maintenance story — a merged external PR suggests the maintainer will accept narrow fixes — but it does not create a support obligation. Do not interpret a cosmetic release as a roadmap.
  • No published security process; CVEs would go unpatched. Low likelihood given the code type, but the policy gap is real for a regulated environment.

Support

  • Community-only: README-level docs, 43 stars, no SLA, no vendor. Expect zero external answers to "why doesn't my settings page load" — internal documentation and a runbook are mandatory, not optional.
  • Ramp-up is genuinely cheap: a mid-level Laravel dev is productive in half a day; the concepts (form schema + settings table) are familiar. The new title/translation options are self-evident from the config and need no training.

Scaling

  • Cache is the whole story. If reads hit the DB uncached, a settings lookup in a hot path (middleware, blade partial) multiplies into real query volume. Require a cached accessor with a tagged/versioned key.
  • Watch cache invalidation across multiple app servers: a settings save on one node must bust the cache everywhere. Prefer a shared cache store (Redis) with version-stamped keys over per-node file cache.
  • Config caching (php artisan config:cache) and settings-table values can disagree; establish one precedence rule and encode it in the accessor.
  • No scaling-relevant change in 0.4.0.

Failure modes

  • Panel boot failure: a plugin registration exception in the PanelProvider white-screens the entire admin panel — highest-severity failure, and the most likely one after a Filament upgrade. Mitigate with a staging panel and a feature-flagged plugin registration.
  • Stale settings: value saved but not applied because cache was not busted — silent, hard to diagnose, erodes operator trust. Add a visible "last updated" and a manual cache-clear action.
  • Plaintext secrets in DB dumps propagating to non-prod environments — enforce encryption casting or forbid secret fields entirely.
  • Schema drift: renaming a settings key orphans stored values; introduce keys as constants and add a migration whenever a key changes. The new configurable page title is cosmetic only and carries no data-migration risk.
  • Migration collisions with host-app migrations on publish — publish and review before running, never auto-publish in CI.

Recommendation for the TPM Green-light a timeboxed spike only, pinned to 0.4.0. On Filament 2.x the package is a reasonable convenience with contained downside. On Filament 3/4 the expected path remains fork-or-replace, but the 0.4.0 release — a first release in two years, from a new contributor, merged by the maintainer — justifies a single half-day probe to see whether upstream would accept a compatibility PR before funding a private fork. The maintained spatie/laravel-settings route is still the safer default. Fund the spike, not the dependency.

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.
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
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager