outerweb/filament-settings
Outerweb Filament Settings adds a settings page to your Filament admin panel where you define typed settings classes, edit values with familiar form fields, and save them to the database. Includes caching and validation.
Architecture fit. This is a thin adapter, not a platform: it renders outerweb/settings definitions as a Filament admin page. The real architectural decision is the base settings package (storage layer) plus Filament as the admin surface. If our admin is already Filament-first, the fit is natural and the added surface area is small. If we are not on Filament, this package is irrelevant and the question collapses to whether we adopt outerweb/settings directly — so the decision gate is "Filament v3 as the settings UI."
Integration feasibility. Mechanically straightforward: composer require both packages, publish the settings table migration and config, register the Filament plugin/page in the panel provider, and author settings classes whose schema is expressed as Filament form components. The effort is concentrated in schema design, authorization, and caching — not in wiring.
Technical risk.
Key questions.
config() or spatie/laravel-settings if either is in place.Stack fit. Laravel 10/11, PHP 8.1+, Filament v3 panel with Livewire. Validate composer constraints against our pinned Filament version before committing — a mismatch here is the most likely early blocker.
Migration path. Pilot on one low-risk panel (e.g., notification or branding settings), not on billing or auth-adjacent configuration. Model existing config() values or spatie/laravel-settings entries as settings classes with config retained as fallback defaults, so behavior is unchanged until the row exists. Write a one-time seeding/backfill command rather than hand-entering production data. Access settings through our own repository/facade wrapper so the underlying package can be swapped or forked without touching call sites.
Compatibility. Check for plugin/page collisions in the panel, conflicts with any existing settings package, and whether the base package's storage driver imposes migration or connection assumptions. Confirm behavior under config:cache and in queued contexts.
Sequencing.
Maintenance. Two packages to track instead of one, both with a single maintainer. Pin versions, subscribe to releases, and budget a fork contingency — the code is small and MIT, so a fork is a day of work, not a quarter. The recurring cost is Filament upgrade testing, not bug fixing.
Support. Community/GitHub only; no SLA. We need an internal owner and written conventions for adding a settings class (schema, cast, authorization, cache key) so any Filament-fluent developer can extend it without archaeology.
Scaling. Data volume is trivial (row per group), but read patterns are not: uncached settings reads hit the database on every request. Cache in Redis/config with explicit invalidation on save, and confirm invalidation propagates to all nodes and queue workers. Avoid any file-based storage backend in a multi-node deployment.
Failure modes.
Ramp-up. Low for developers already fluent in Filament — defining settings as form components is idiomatic and discoverable. Non-Filament teams pay a real cost learning the component API before they can contribute. Ops needs a short runbook: back up and restore the settings table alongside the app database, clear settings cache on deploy, and treat settings schema changes as migrations that require a deploy step, not just a code merge.
How can I help you explore Laravel packages today?