PHPackages                             outerweb/filament-settings - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. outerweb/filament-settings

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

outerweb/filament-settings
==========================

Filament integration for the outerweb/settings package

v2.3.1(2mo ago)36101.9k↓41.9%24[1 issues](https://github.com/outer-web/filament-settings/issues)[4 PRs](https://github.com/outer-web/filament-settings/pulls)4MITPHPPHP ^8.4CI passing

Since Feb 11Pushed 2mo agoCompare

[ Source](https://github.com/outer-web/filament-settings)[ Packagist](https://packagist.org/packages/outerweb/filament-settings)[ Docs](https://github.com/outerweb/filament-settings)[ GitHub Sponsors](https://github.com/outer-web)[ RSS](/packages/outerweb-filament-settings/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (26)Versions (15)Used By (4)

[![Filament Settings](./docs/images/github-banner.png)](./docs/images/github-banner.png)

Filament Settings
=================

[](#filament-settings)

[![Latest Version on Packagist](https://camo.githubusercontent.com/bd2ece94716ba5e0c3201b02bd05275b19348accb5e2b7f35d0732c14a5ab41a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6f757465727765622f66696c616d656e742d73657474696e67732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/outerweb/filament-settings)[![GitHub Tests Action Status](https://camo.githubusercontent.com/58db23e54a293dd86b57d6f38204b802fd1da8c06309cd30a81318c7932c545b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6f757465727765622f66696c616d656e742d73657474696e67732f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/outer-web/filament-settings/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/ee648df191b5dc17f348761f9781931f3e77a5714d9ec43eb41fd6fa687a1075/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6f757465727765622f66696c616d656e742d73657474696e67732f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/outer-web/filament-settings/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/95f057d0a1102b961339138440da69eb7e523b296964ab3132c19d282e437d81/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6f757465727765622f66696c616d656e742d73657474696e67732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/outerweb/filament-settings)

This Filament plugin provides an integration for the [outerweb/settings](https://github.com/outer-web/settings) package.

Table of Contents
-----------------

[](#table-of-contents)

- [Installation](#installation)
- [Usage](#usage)
- [Changelog](#changelog)
- [License](#license)

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require outerweb/filament-settings
```

Follow the installation instructions for the [outerweb/settings](https://github.com/outer-web/settings#installation) package.

Add the plugin to your panel:

```
use Outerweb\FilamentSettings\SettingsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugins([
            // ...
            SettingsPlugin::make()
                ->pages([
                    // Add your settings pages here
                ]),
        ]);
}
```

Usage
-----

[](#usage)

### Create a Page

[](#create-a-page)

Create a settings page by extending `Outerweb\FilamentSettings\Pages\Settings`:

```
namespace App\Filament\Pages;

use Outerweb\FilamentSettings\Pages\Settings;

class MySettings extends Settings
{
    public function form(Schema $schema): Schema
    {
        return $schema
            ->components([
                Tabs::make()
                    ->columnSpanFull()
                    ->tabs([
                        Tab::make('General')
                            ->schema([
                                TextInput::make('general.brand_name')
                                    ->required(),
                            ]),
                        Tab::make('Seo')
                            ->schema([
                                TextInput::make('seo.title')
                                    ->required(),
                                TextInput::make('seo.description')
                                    ->required(),
                            ]),
                    ]),
            ]);
    }
}
```

### Creating multiple pages

[](#creating-multiple-pages)

You can create as many settings pages as you want.

```
use Outerweb\FilamentSettings\SettingsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugins([
            // ...
            SettingsPlugin::make()
                ->pages([
                    \App\Filament\Pages\GeneralSettings::class,
                    \App\Filament\Pages\SeoSettings::class,
                    \App\Filament\Pages\OtherSettings::class,
                ]),
        ]);
}
```

Each page just needs to extend `Outerweb\FilamentSettings\Pages\Settings`. You can override the all properties like the `icon`, `navigationGroup`... just like a normal Filament page.

### Mutating settings data

[](#mutating-settings-data)

You can mutate the settings before filling the form and before saving them to the database by defining the `mutateFormDataBeforeFill` and `mutateFormDataBeforeSave` methods.

For example, if you want to store all settings under a specific tenant key:

```
    public function mutateFormDataBeforeFill(array $data): array
    {
        return collect($data)->get($this->getTenantKey(), []);
    }

    public function mutateFormDataBeforeSave(array $data): array
    {
        return collect($data)->mapWithKeys(function ($item, $key) {
            return ["{$this->getTenantKey()}.{$key}" => $item];
        })->toArray();
    }

    /**
     * A custom function for this example
     */
    private function getTenantKey(): string
    {
        return 'tenant'; // Your logic to determine the tenant
    }
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

58

—

FairBetter than 98% of packages

Maintenance84

Actively maintained with recent releases

Popularity46

Moderate usage in the ecosystem

Community20

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~85 days

Recently: every ~40 days

Total

10

Last Release

84d ago

Major Versions

v1.3.0 → v2.0.02025-10-08

PHP version history (2 changes)v1.0.0PHP ^8.0

v2.0.0PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/d5a072b1191f02ac21a84af067a579b6f3323da7e45197369a7540f98c152407?d=identicon)[outerweb.be](/maintainers/outerweb.be)

---

Top Contributors

[![SimonBroekaert](https://avatars.githubusercontent.com/u/35606498?v=4)](https://github.com/SimonBroekaert "SimonBroekaert (6 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

laravelOuterwebfilament-settings

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/outerweb-filament-settings/health.svg)

```
[![Health](https://phpackages.com/badges/outerweb-filament-settings/health.svg)](https://phpackages.com/packages/outerweb-filament-settings)
```

###  Alternatives

[stephenjude/filament-feature-flags

Filament implementation of feature flags and segmentation with Laravel Pennant.

122157.7k1](/packages/stephenjude-filament-feature-flags)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3913.7k](/packages/rawilk-profile-filament-plugin)[bezhansalleh/filament-google-analytics

Google Analytics integration for FilamentPHP

208175.5k8](/packages/bezhansalleh-filament-google-analytics)[dotswan/filament-map-picker

Easily pick and retrieve geo-coordinates using a map-based interface in your Filament applications.

127173.7k3](/packages/dotswan-filament-map-picker)[marcelweidum/filament-expiration-notice

Customize the livewire expiration notice

94113.9k5](/packages/marcelweidum-filament-expiration-notice)[stephenjude/filament-blog

Filament Blog Builder

20518.8k](/packages/stephenjude-filament-blog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
