PHPackages                             laravilt/panel - 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. [Admin Panels](/categories/admin)
4. /
5. laravilt/panel

ActiveLibrary[Admin Panels](/categories/admin)

laravilt/panel
==============

A powerful admin panel framework for Laravel with Vue.js (Inertia.js) frontend. Build beautiful, reactive admin panels with minimal effort.

1.0.15(2mo ago)1413↓45.5%13MITPHPPHP ^8.3|^8.4CI passing

Since Dec 11Pushed 2mo agoCompare

[ Source](https://github.com/laravilt/panel)[ Packagist](https://packagist.org/packages/laravilt/panel)[ GitHub Sponsors](https://github.com/fadymondy)[ RSS](/packages/laravilt-panel/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (21)Versions (16)Used By (3)

[![Panel](./arts/screenshot.jpg)](./arts/screenshot.jpg)

Laravilt Panel
==============

[](#laravilt-panel)

[![Latest Stable Version](https://camo.githubusercontent.com/a2dbaa4e83d28ed60cb21170f92c872c28539203e9d0589a8bdbe8cdd7ed5169/68747470733a2f2f706f7365722e707567782e6f72672f6c61726176696c742f70616e656c2f76657273696f6e2e737667)](https://packagist.org/packages/laravilt/panel)[![License](https://camo.githubusercontent.com/5d5ef2d7ab8e9eaea9aa015bed8faa7e97d9ac1a59c18d05423263f7c8c8a992/68747470733a2f2f706f7365722e707567782e6f72672f6c61726176696c742f70616e656c2f6c6963656e73652e737667)](https://packagist.org/packages/laravilt/panel)[![Downloads](https://camo.githubusercontent.com/92fb6731bce6717b29efcfda91be985bafa7db0c640fe291f8482955cafdfaf5/68747470733a2f2f706f7365722e707567782e6f72672f6c61726176696c742f70616e656c2f642f746f74616c2e737667)](https://packagist.org/packages/laravilt/panel)[![Dependabot Updates](https://github.com/laravilt/panel/actions/workflows/dependabot/dependabot-updates/badge.svg)](https://github.com/laravilt/panel/actions/workflows/dependabot/dependabot-updates)[![PHP Code Styling](https://github.com/laravilt/panel/actions/workflows/fix-php-code-styling.yml/badge.svg)](https://github.com/laravilt/panel/actions/workflows/fix-php-code-styling.yml)[![Tests](https://github.com/laravilt/panel/actions/workflows/tests.yml/badge.svg)](https://github.com/laravilt/panel/actions/workflows/tests.yml)

A powerful admin panel framework for Laravel with Vue.js (Inertia.js) frontend. Build beautiful, reactive admin panels with minimal effort.

Features
--------

[](#features)

- **Resources**: Auto-generate CRUD interfaces from database tables
- **Pages**: Custom standalone pages with full control
- **Clusters**: Group related pages under a common navigation section
- **API Generation**: RESTful API endpoints with interactive API Tester
- **Forms**: Dynamic form builder with 30+ field types
- **Tables**: Feature-rich data tables with filtering, sorting, and bulk actions
- **Infolists**: Display record details in elegant layouts
- **Actions**: Customizable actions with modal support
- **Navigation**: Auto-generated navigation with groups and badges
- **Multi-Tenancy**: Single-database or multi-database SaaS architecture

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

[](#installation)

```
composer require laravilt/panel
```

The package will automatically register its service provider.

Configuration
-------------

[](#configuration)

Publish the config file:

```
php artisan vendor:publish --tag="laravilt-panel-config"
```

Quick Start
-----------

[](#quick-start)

### 1. Create a Panel

[](#1-create-a-panel)

```
php artisan laravilt:panel admin
```

This creates a new admin panel at `app/Providers/Laravilt/AdminPanelProvider.php`.

### 2. Create a Resource

[](#2-create-a-resource)

```
php artisan laravilt:resource admin
```

Follow the interactive prompts to:

- Select a database table
- Choose which columns to include
- Enable API endpoints (optional)
- Enable API Tester interface (optional)

### 3. Create a Page

[](#3-create-a-page)

```
php artisan laravilt:page admin Dashboard
```

Creates a standalone page with both PHP controller and Vue component.

### 4. Create a Cluster

[](#4-create-a-cluster)

```
php artisan laravilt:cluster admin Settings --icon=Settings
```

Creates a cluster to group related pages:

```
// app/Laravilt/Admin/Clusters/Settings.php
class Settings extends Cluster
{
    protected static ?string $navigationIcon = 'Settings';
    protected static ?string $navigationLabel = 'Settings';
}
```

Assign pages to a cluster:

```
class ProfilePage extends Page
{
    protected static ?string $cluster = Settings::class;
}
```

API Generation
--------------

[](#api-generation)

Resources can automatically generate RESTful API endpoints.

### Enable API on a Resource

[](#enable-api-on-a-resource)

Simply define an `api()` method on your resource - the API will be auto-detected:

```
class ProductResource extends Resource
{
    public static function api(ApiResource $api): ApiResource
    {
        return ProductApi::configure($api);
    }
}
```

### API Configuration Class

[](#api-configuration-class)

```
class ProductApi
{
    public static function configure(ApiResource $api): ApiResource
    {
        return $api
            ->columns([
                ApiColumn::make('id')->type('integer')->sortable(),
                ApiColumn::make('name')->searchable()->sortable(),
                ApiColumn::make('price')->type('decimal'),
                ApiColumn::make('created_at')->type('datetime'),
            ])
            ->useAPITester(); // Enable interactive API tester UI
    }
}
```

### API Tester Interface

[](#api-tester-interface)

Enable the API Tester UI to allow interactive API testing directly from the panel:

```
$api->useAPITester(); // Enable
$api->useAPITester(false); // Disable (default)
```

### Available API Methods

[](#available-api-methods)

```
$api
    ->columns([...])           // Define API columns
    ->endpoint('/api/products') // Custom endpoint
    ->perPage(25)              // Items per page
    ->authenticated()          // Require authentication
    ->list(enabled: true)      // Enable/disable list operation
    ->show(enabled: true)      // Enable/disable show operation
    ->create(enabled: true)    // Enable/disable create operation
    ->update(enabled: true)    // Enable/disable update operation
    ->delete(enabled: true)    // Enable/disable delete operation
    ->useAPITester();          // Enable API Tester interface
```

Multi-Tenancy
-------------

[](#multi-tenancy)

Laravilt Panel supports two tenancy modes for building SaaS applications:

### Single Database Mode

[](#single-database-mode)

All tenants share the same database with `tenant_id` scoping. Uses path-based routing.

```
use Laravilt\Panel\Panel;
use App\Models\Team;

Panel::make('admin')
    ->path('admin')
    ->tenant(Team::class, 'team', 'slug');
```

**URL Pattern:** `/admin/{team}/dashboard`

### Multi-Database Mode

[](#multi-database-mode)

Each tenant has their own database with complete data isolation. Uses subdomain-based routing.

```
use Laravilt\Panel\Panel;
use Laravilt\Panel\Models\Tenant;

Panel::make('admin')
    ->path('admin')
    ->multiDatabaseTenancy(Tenant::class, 'myapp.com')
    ->tenantRegistration()  // Allow new tenant signup
    ->tenantProfile()       // Enable team settings page
    ->tenantModels([
        \App\Models\Customer::class,
        \App\Models\Product::class,
    ]);
```

**URL Pattern:** `acme.myapp.com/admin/dashboard`

### Tenant Model

[](#tenant-model)

The built-in `Tenant` model provides:

- ULID primary keys
- Automatic slug and database name generation
- User membership management (owner, admin, member roles)
- Settings and data storage
- Trial period support
- Domain management

```
use Laravilt\Panel\Models\Tenant;

$tenant = Tenant::create([
    'name' => 'Acme Corp',
    'owner_id' => $user->id,
]);

// Auto-generated: id, slug, database name

$tenant->addUser($user, 'admin');
$tenant->setSetting('feature.enabled', true);
$tenant->onTrial(); // Check trial status
```

### Configuration

[](#configuration-1)

Publish the tenancy configuration:

```
php artisan vendor:publish --tag=laravilt-tenancy-config
```

Key configuration options:

```
// config/laravilt-tenancy.php
return [
    'mode' => env('TENANCY_MODE', 'single'),
    'subdomain' => [
        'domain' => env('APP_DOMAIN', 'localhost'),
        'reserved' => ['www', 'api', 'admin'],
    ],
    'tenant' => [
        'database_prefix' => 'tenant_',
        'auto_migrate' => true,
    ],
];
```

Migrating from Filament PHP
---------------------------

[](#migrating-from-filament-php)

Laravilt provides an automated migration tool to convert your existing Filament PHP v3/v4 resources to Laravilt.

### Quick Migration

[](#quick-migration)

```
php artisan laravilt:filament
```

This interactive command will:

1. Scan your `app/Filament` directory for resources, pages, and widgets
2. Let you select which components to migrate
3. Convert namespaces, icons, and method signatures automatically
4. Generate Laravilt-compatible files in `app/Laravilt`

### Migration Options

[](#migration-options)

```
# Migrate from custom source directory
php artisan laravilt:filament --source=app/Filament/Admin

# Migrate to custom target directory
php artisan laravilt:filament --target=app/Laravilt/Backend

# Specify panel name
php artisan laravilt:filament --panel=Admin

# Preview changes without making them
php artisan laravilt:filament --dry-run

# Overwrite existing files
php artisan laravilt:filament --force

# Migrate all components without selection prompt
php artisan laravilt:filament --all
```

### What Gets Migrated

[](#what-gets-migrated)

FilamentLaravilt`Filament\Resources\Resource``Laravilt\Panel\Resources\Resource``Filament\Forms\Components\*``Laravilt\Forms\Components\*``Filament\Tables\Columns\*``Laravilt\Tables\Columns\*``Filament\Infolists\Components\*``Laravilt\Infolists\Entries\*``Filament\Actions\*``Laravilt\Actions\*``Filament\Pages\*``Laravilt\Panel\Pages\*``Filament\Widgets\*``Laravilt\Widgets\*`Heroicon enumsLucide icon strings`Get`/`Set` utilities`Laravilt\Support\Utilities\Get`/`Set`### Third-Party Package Mappings

[](#third-party-package-mappings)

The migration tool also handles common third-party Filament packages:

- `RVxLab\FilamentColorPicker` → `Laravilt\Forms\Components\ColorPicker`
- `FilamentTiptapEditor` → `Laravilt\Forms\Components\RichEditor`
- `Mohamedsabil83\FilamentFormsTinyeditor` → `Laravilt\Forms\Components\RichEditor`
- Spatie MediaLibrary uploads → `Laravilt\Forms\Components\FileUpload`

### Post-Migration Steps

[](#post-migration-steps)

After migration:

1. Review the generated files for any manual adjustments
2. Update your panel provider to register the new resources
3. Run `npm run build` to compile frontend assets
4. Test all CRUD operations

Commands
--------

[](#commands)

CommandDescription`laravilt:filament`**Migrate Filament resources to Laravilt**`laravilt:panel {name}`Create a new panel`laravilt:resource {panel}`Create a resource with interactive prompts`laravilt:page {panel} {name}`Create a standalone page`laravilt:cluster {panel} {name}`Create a cluster for grouping pages`laravilt:relation {panel} {resource} {name}`Create a relation manager### Cluster Command Options

[](#cluster-command-options)

```
php artisan laravilt:cluster admin Settings \
    --icon=Settings \
    --sort=10 \
    --group="System"
```

Resource Structure
------------------

[](#resource-structure)

```
app/Laravilt/Admin/Resources/Product/
├── ProductResource.php      # Main resource class
├── Form/
│   └── ProductForm.php      # Form configuration
├── Table/
│   └── ProductTable.php     # Table configuration
├── InfoList/
│   └── ProductInfoList.php  # Infolist configuration
├── Api/
│   └── ProductApi.php       # API configuration (optional)
└── Pages/
    ├── ListProduct.php      # List page
    ├── CreateProduct.php    # Create page
    ├── EditProduct.php      # Edit page
    └── ViewProduct.php      # View page

```

Testing
-------

[](#testing)

```
composer test
```

Code Style
----------

[](#code-style)

```
composer format
```

Static Analysis
---------------

[](#static-analysis)

```
composer analyse
```

License
-------

[](#license)

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

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance83

Actively maintained with recent releases

Popularity19

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 81.1% 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 ~5 days

Recently: every ~16 days

Total

15

Last Release

84d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2147eb2fca7ab5f0124d0fafd88ba2d2a5dfa3a0036fb8872d1084b7cba29366?d=identicon)[fadymondy](/maintainers/fadymondy)

---

Top Contributors

[![fadymondy](https://avatars.githubusercontent.com/u/11937812?v=4)](https://github.com/fadymondy "fadymondy (77 commits)")[![swarakaka](https://avatars.githubusercontent.com/u/9349190?v=4)](https://github.com/swarakaka "swarakaka (9 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (7 commits)")[![actions-user](https://avatars.githubusercontent.com/u/65916846?v=4)](https://github.com/actions-user "actions-user (2 commits)")

---

Tags

pluginlaraveldashboardadminpanellaravilt

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/laravilt-panel/health.svg)

```
[![Health](https://phpackages.com/badges/laravilt-panel/health.svg)](https://phpackages.com/packages/laravilt-panel)
```

PHPackages © 2026

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