rhaima / voltpanel
A powerful admin panel builder for Laravel using the VILT stack (Vue, Inertia, Laravel, Tailwind)
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
pkg:composer/rhaima/voltpanel
Requires
- php: ^8.2
- dompdf/dompdf: ^3.0
- illuminate/contracts: ^11.0|^12.0
- inertiajs/inertia-laravel: ^2.0
- openspout/openspout: ^4.0
- pragmarx/google2fa: ^8.0|^9.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^3.0
- phpstan/phpstan: ^1.10
README
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
- Mohamed Touhami Rhaima
- Inspired by Filament PHP
- All Contributors
License
The MIT License (MIT). Please see License File for more information.