Skip to content

A powerful admin panel builder for Laravel using the VILT stack (Vue, Inertia.js, Laravel, Tailwind CSS). Inspired by Filament PHP.

License

Notifications You must be signed in to change notification settings

Rhaima96/voltpanel

Repository files navigation

VoltPanel

Latest Version on Packagist Total Downloads License

A powerful admin panel builder for Laravel using the VILT stack (Vue, Inertia.js, Laravel, Tailwind CSS). Inspired by Filament PHP, VoltPanel brings a similar developer experience to the VILT ecosystem.

Features

  • Resource Builder — Define models, forms, and tables in a single PHP class with zero boilerplate CRUD
  • Rich Form Components — TextInput, Select, RichEditor (Tiptap), DatePicker, ColorPicker, FileUpload, Toggle, Checkbox, Radio, Textarea, and more
  • Powerful Tables — Sortable, searchable, and filterable columns with TextColumn, BadgeColumn, BooleanColumn, DateColumn, ImageColumn, IconColumn
  • Table Filters — SelectFilter, TernaryFilter with saved filter presets
  • Actions & Bulk Actions — Built-in Delete, Export (CSV/Excel/PDF), and Import actions with custom action support
  • Dashboard Widgets — StatsOverview, Chart (Chart.js), AdvancedChart, TimeSeries, StatsChart, and ActivityLog widgets with customizable layouts
  • Role-Based Authorization — Built-in roles and permissions system with super admin support
  • Activity Logging — Automatic tracking of create, update, and delete operations
  • Import & Export — CSV, Excel (XLSX), and PDF export via OpenSpout and DomPDF; CSV/Excel import with chunked processing
  • Multi-Tenancy — Data isolation by tenant with subdomain/domain identification support
  • Media Library — File uploads and media management with multiple disk support
  • Global Search — Search across all resources with customizable keybindings
  • Theming — Customizable colors, dark mode toggle, and CSS variable-based theming (supports Tailwind v3 & v4)
  • Multi-Panel Support — Register multiple admin panels with independent configurations
  • Comments — Threaded comments with mentions support on any resource
  • Tags & Favorites — Tagging system and user favorites for resources
  • Webhooks — Event-driven webhook dispatching
  • Plugin System — Extend VoltPanel with custom plugins
  • Localization — Multi-language support (English, French, Spanish, German, Arabic)
  • Settings Management — Key-value system settings with caching
  • Scheduled Exports — Automate recurring data exports

Requirements

  • PHP 8.2+
  • Laravel 11 or 12
  • Node.js 18+
  • Composer 2.x

Installation

1. Install via Composer

composer require rhaima/voltpanel

2. Run the install command

php artisan voltpanel:install

This will publish the config file, migrations, Vue components, and CSS assets (auto-detects Tailwind v3 or v4).

3. Run migrations

php artisan migrate

4. Install frontend dependencies and build

npm install
npm run dev

5. Create your first panel

php artisan voltpanel:panel Admin

6. Register the panel

In your app/Providers/AppServiceProvider.php:

use App\Panels\AdminPanel;
use Rhaima\VoltPanel\Facades\VoltPanel;

public function boot(): void
{
    VoltPanel::register(new AdminPanel());
}

7. Add the HasRoles trait to your User model

use Rhaima\VoltPanel\Authorization\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;
}

Visit http://yourapp.com/admin to access the panel.

Quick Example

Generate a resource:

php artisan voltpanel:resource Post

Define your resource in a single class:

use Rhaima\VoltPanel\Resources\Resource;
use Rhaima\VoltPanel\Forms\Form;
use Rhaima\VoltPanel\Tables\Table;
use Rhaima\VoltPanel\Forms\Components\TextInput;
use Rhaima\VoltPanel\Forms\Components\RichEditor;
use Rhaima\VoltPanel\Forms\Components\Select;
use Rhaima\VoltPanel\Tables\Columns\TextColumn;
use Rhaima\VoltPanel\Tables\Columns\BadgeColumn;
use Rhaima\VoltPanel\Tables\Columns\DateColumn;

class PostResource extends Resource
{
    protected static ?string $model = Post::class;

    public static function form(Form $form): Form
    {
        return $form->schema([
            TextInput::make('title')->required(),
            RichEditor::make('content'),
            Select::make('status')->options([
                'draft' => 'Draft',
                'published' => 'Published',
            ]),
        ]);
    }

    public static function table(Table $table): Table
    {
        return $table->columns([
            TextColumn::make('title')->sortable()->searchable(),
            BadgeColumn::make('status'),
            DateColumn::make('created_at'),
        ]);
    }
}

Configuration

Publish the config file:

php artisan vendor:publish --tag=voltpanel-config

See config/voltpanel.php for all available options including path, middleware, branding, theme, authorization, activity log, multi-tenancy, and more.

Documentation

Full documentation is available at https://rhaima96.github.io/voltpanel-docs.

Tech Stack

Layer Technology Purpose
Backend Laravel 11/12 API, routing, ORM, authentication
Frontend Vue 3 Reactive UI components
Bridge Inertia.js SPA without building an API
Styling Tailwind CSS v3/v4 Utility-first CSS
Charts Chart.js Dashboard visualizations
Rich Editor Tiptap WYSIWYG content editing
Export OpenSpout, DomPDF CSV, Excel, PDF generation

Testing

composer test

Changelog

Please see the releases page for more information on what has changed.

Contributing

Contributions are welcome! Please see CONTRIBUTING for details.

Security

If you discover a security vulnerability, please send an email to mohamed.rhaima96@gmail.com. All security vulnerabilities will be promptly addressed.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

A powerful admin panel builder for Laravel using the VILT stack (Vue, Inertia.js, Laravel, Tailwind CSS). Inspired by Filament PHP.

Resources

License

Stars

Watchers

Forks

Packages

No packages published