# Ship a Laravel Admin Panel in a Day with Filament 5 and TomatoPHP

> Users, settings, English + Arabic, media, menus, content and invoices: install free MIT TomatoPHP plugins on Filament 5 in one day, then spend the week on your own product.

*2026-10-12T10:35:52Z*

Every Laravel admin panel I have built starts with the same list: users and roles, app settings, English and Arabic translations, a media library, menus, some content pages, and sooner or later invoices. None of it is your product. All of it has to work before anyone sees your product.

[Filament](https://filamentphp.com) gives you the panel. TomatoPHP gives you those modules as plain composer packages. There are 68 TomatoPHP Filament plugins, all MIT-licensed and released for **Filament 5, Laravel 12–13 and PHP 8.2+**. Each one registers itself with your panel in one line.

This guide is the order I install them in when I want the boring part of an admin panel done in a day, so the rest of the week goes to the features only you can build.

## What you end up with

| You need | Plugin | Package |
|---|---|---|
| Users and roles | [User Manager](/en/plugins/filament-users) | `tomatophp/filament-users` |
| App settings (site name, logo, colours, social links) | [Settings Hub](/en/plugins/filament-settings-hub) | `tomatophp/filament-settings-hub` |
| English + Arabic UI, translated from the panel | [Translation Manager](/en/plugins/filament-translations) + [Language Switcher](/en/plugins/filament-language-switcher) | `tomatophp/filament-translations`, `tomatophp/filament-language-switcher` |
| Files and images | [Media Manager](/en/plugins/filament-media-manager) | `tomatophp/filament-media-manager` |
| Navigation menus | [Menu Builder](/en/plugins/filament-menus) | `tomatophp/filament-menus` |
| Posts, categories and pages | [CMS Builder](/en/plugins/filament-cms) | `tomatophp/filament-cms` |
| Invoices and payments | [Invoice Manager](/en/plugins/filament-invoices) | `tomatophp/filament-invoices` |
| Installable app on phones | [PWA](/en/plugins/filament-pwa) | `tomatophp/filament-pwa` |

**Try before you install:** [demo.tomatophp.com](https://demo.tomatophp.com) runs 31 TomatoPHP plugins together on Filament 5, with a prefilled demo account. The data resets every hour, so click anything.

## Before you start

Start from a fresh Laravel app with a Filament 5 panel:

```bash
composer require filament/filament:"^5.0"
php artisan filament:install --panels
```

Every plugin below follows the same three steps: `composer require`, run its `install` command, then add `->plugin(...)` to `app/Providers/Filament/AdminPanelProvider.php`. Some also publish a migration. Each plugin page links to its README with the exact steps, so keep it open while you go.

## Morning: the foundation

**Users.** One package gives you the user resource. If you need roles, the README shows how to pair it with Filament Shield.

```bash
composer require tomatophp/filament-users
```

**Settings.** Settings Hub stores site settings in the database and gives you a settings page in the panel. Several other TomatoPHP plugins (PWA, invoices) add their own pages to it, so install it early.

```bash
composer require tomatophp/filament-settings-hub
php artisan filament-settings-hub:install
```

**Two languages.** The Translation Manager scans your code for `trans()` and `__()`, stores the strings in the database with a cache, and lets you translate them from the panel. The Language Switcher adds the toggle. English and Arabic work out of the box, including RTL.

```bash
composer require tomatophp/filament-translations tomatophp/filament-language-switcher
php artisan filament-translations:install
php artisan filament-language-switcher:install
php artisan filament-translations:import
```

## Midday: content

**Media.** Media Manager puts a GUI on top of Spatie Media Library: folders, uploads, and a picker you can use in your own forms.

```bash
composer require tomatophp/filament-media-manager
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-migrations"
php artisan filament-media-manager:install
```

**Menus and pages.** The Menu Builder stores navigation in the database, so you can render it in the panel or in a Livewire component. The CMS Builder adds posts and categories. Both are translatable, so register `lara-zeus/spatie-translatable` next to them.

```bash
composer require tomatophp/filament-menus tomatophp/filament-cms
php artisan filament-menus:install
php artisan filament-cms:install
```

One warning from the README: the CMS creates `categories` and `posts` tables. If your app already has those, rename yours first.

## Afternoon: money

**Invoices.** The Invoice Manager handles invoices and payments with multiple currencies and invoice types. Call `->useSettingsHub()` and its settings appear next to everything else.

```bash
composer require tomatophp/filament-invoices
php artisan filament-invoices:install
```

Before the first invoice, tell it which models invoices are *from* and *for* (for example your company and your customers). The README shows the facade call to put in a service provider.

## Register everything

With those installed, the panel provider looks roughly like this (check each README for the options you want):

```php
use Filament\Panel;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(\TomatoPHP\FilamentUsers\FilamentUsersPlugin::make())
        ->plugin(\TomatoPHP\FilamentSettingsHub\FilamentSettingsHubPlugin::make()
            ->allowSiteSettings()
            ->allowSocialMenuSettings())
        ->plugin(\TomatoPHP\FilamentTranslations\FilamentTranslationsPlugin::make())
        ->plugin(\TomatoPHP\FilamentLanguageSwitcher\FilamentLanguageSwitcherPlugin::make())
        ->plugin(\TomatoPHP\FilamentMediaManager\FilamentMediaManagerPlugin::make())
        ->plugin(\LaraZeus\SpatieTranslatable\SpatieTranslatablePlugin::make()
            ->defaultLocales(['en', 'ar']))
        ->plugin(\TomatoPHP\FilamentMenus\FilamentMenusPlugin::make())
        ->plugin(\TomatoPHP\FilamentCms\FilamentCMSPlugin::make()
            ->useCategory()
            ->usePost())
        ->plugin(\TomatoPHP\FilamentInvoices\FilamentInvoicesPlugin::make()
            ->useSettingsHub());
}
```

Run `php artisan migrate`, sign in, and you have a bilingual admin panel with users, settings, media, menus, content and invoices. That is the part every client expects and nobody pays extra for.

## What this won't do for you

- **It won't design your domain.** The plugins cover the generic modules. Your orders, bookings or patients are still your code, and that's where the day you saved should go.
- **Read the README of each plugin.** Some publish migrations or need a companion package. The compatibility table at the top tells you which major version matches your Filament.
- **Not every repo is a finished plugin.** The TomatoPHP organisation has more repos than the 68 released Filament plugins. Use what's listed on the [plugins page](/en/plugins), which is the maintained set.

## How the plugins are maintained

During the Filament 5 upgrade, every plugin went through the same release gate before it was tagged: open issues fixed and community PRs merged with credit, a green Pest suite with a regression test for each fix, and then a real install in a sandbox Laravel 13 + Filament 5 app where a smoke test renders every panel page with zero skipped. The same pass found and fixed real security bugs, for example unescaped user HTML in the docs, blog and notes plugins, and payment gateway secrets that were reaching the browser.

The packages have more than 1.7 million installs on Packagist, and the source is on [GitHub](https://github.com/tomatophp).

## Want it built for you?

If you'd rather hand over the whole panel, including the domain-specific parts, I build Laravel and Filament products for teams and agencies, under your brand if you need that. See [white-label Laravel and Filament development](https://fadymondy.com/en/services/white-label-laravel-filament?utm_source=tomatophp&utm_medium=referral&utm_campaign=tomatophp-launch-oct26), or [get in touch](https://fadymondy.com/en/contact?utm_source=tomatophp&utm_medium=referral&utm_campaign=tomatophp-launch-oct26).

**Next steps:** [browse all plugins](/en/plugins) · [read the docs](/en/docs) · [try the live demo](https://demo.tomatophp.com)

---

Source: https://tomatophp.com/en/blog/laravel-admin-panel-in-a-day-filament-tomatophp
