rectitude-open/filament-system-settings
Filament System Settings adds a settings management page to your Filament admin panel, letting you define and edit application settings stored in the database. Configure fields, groups, and values from one place, then read them anywhere in your Laravel app.
Install the package:
composer require rectitude-open/filament-system-settings
Publish and run the package assets/migrations:
php artisan vendor:publish --tag="filament-system-settings-migrations"
php artisan vendor:publish --tag="filament-system-settings-config"
php artisan migrate
Register the plugin on the panel(s) that should expose the settings page, typically in app/Providers/Filament/AdminPanelProvider.php:
->plugin(FilamentSystemSettingsPlugin::make())
Where to look first: the "System Settings" page that appears in the panel navigation, and the settings class generated/published by the package (usually under app/Settings). That class is the contract you will read from in the rest of the app.
First use case: put your site name, logo/branding, contact email, and any global toggles into the settings page, then read them in a Blade layout or a service class instead of hardcoding them. This is the fastest win and validates that migrations, caching, and the Filament page wiring all work.
SettingsService so layouts don't each resolve settings individually. This also gives you one place to change if the package's accessor API shifts.AdminPanelProvider) rather than globally, so tenant/user panels don't get an unexpected settings page. If you need per-tenant settings, that is a different design — check whether the package's storage supports a tenant key before promising it.canAccess()), because "settings" usually means secrets-adjacent data like SMTP or API keys.livewire()/fillForm() style tests so field renames get caught by your suite, not production.site url field. This is the change to plan around. Anything that reads the site URL from settings — layouts building canonical links, sitemap generation, mail templates, seeded fixtures — must move to config('app.url') or your own setting. The field is gone from the form, but the corresponding column/row may still exist in the database; verify and clean it up in a migration if it's now dead weight, and remove the key from any settings seeder to avoid a stale value lingering.php artisan settings:clear-cache (or the package's equivalent) to your deploy script and remember it when debugging "the change didn't take".^1.3 with the matching Filament constraint) and read the upgrade notes on Filament majors before bumping.->form([...]) overrides or schema modifiers, re-check them after each release — they reference the package's field names directly.How can I help you explore Laravel packages today?