Looking to hire Laravel developers? Try LaraJobs

laravel-livewire-panel maintained by alp-develop

Description
Admin panel framework for Laravel and Livewire. Modular architecture with widgets, plugins, search, notifications, gate authorization, dark mode, i18n and multi-theme support (Bootstrap 4, Bootstrap 5, Tailwind CSS). Compatible with Laravel 10-13, Livewire 3-4, PHP 8.1-8.5.
Last update
2026/04/13 00:51 (dev-main)
License
Links
Downloads
15

Comments
comments powered by Disqus

Laravel Livewire Panel

A complete admin panel framework for Laravel + Livewire. Supports Bootstrap 4, Bootstrap 5, and Tailwind CSS. Compatible with Livewire 3 and Livewire 4.


Requirements

Requirement Version
PHP 8.1 / 8.2 / 8.3 / 8.4 / 8.5
Laravel 10 / 11 / 12 / 13
Livewire 3.x / 4.x

Installation

composer require alp-develop/laravel-livewire-panel
php artisan panel:install

The installer runs an interactive menu:

  1. URL prefix (default: admin)
  2. Navigation modeconfig or modules
  3. CSS Theme — Bootstrap 5, Bootstrap 4, or Tailwind CSS
  4. Gate driver — None, Spatie, or Laravel Gate
  5. Registration — enable/disable
  6. CDN libraries — Chart.js, SweetAlert2, Select2, Flatpickr
  7. Publish views — optional

Use --defaults to skip prompts.


Quick Start

Create your first page

In config mode, create a Livewire component with the panel layout and register the route manually:

namespace App\Livewire;

use Livewire\Attributes\Layout;
use Livewire\Component;

#[Layout('panel::layouts.app')]
class Dashboard extends Component
{
    public function render()
    {
        return view('livewire.dashboard');
    }
}

Register the route in routes/web.php with PanelAuthMiddleware. The prefix must match the panel prefix and the name must follow the pattern panel.{panelId}.:

use App\Livewire\Dashboard;
use AlpDevelop\LivewirePanel\Http\Middleware\PanelAuthMiddleware;

Route::middleware(['web', PanelAuthMiddleware::class])
    ->prefix('prefix')
    ->name('panel.admin.')
    ->group(function () {
        Route::get('/', Dashboard::class)->name('home');
    });

Visit http://yourapp.test/prefix/login — after login you land on /prefix where your page renders inside the panel layout.

The prefix determines the base URL of the panel. For example, 'prefix' => 'admin' means all panel routes live under /admin/*. After login, the user is redirected to /{prefix}. Route names must follow panel.{panelId}.{name} so the sidebar can resolve them.

See Installation for the full interactive menu, modules mode, and all options.


Documentation

Guide Description
Installation Interactive installer, navigation modes, getting started
Commands All panel:* artisan commands
Configuration Panels, guards, modes, CDN, multi-panel, helpers
Components Login, register, sidebar, navbar per panel
Navigation Config mode, modules mode, groups, permissions, user menu
Modules Dashboard, Users, Auth + custom modules
Widgets StatsCard, Chart, RecentTable + custom widgets
Themes Bootstrap 4/5, Tailwind + custom themes
Customization CSS variables, sidebar, navbar, dark mode, layout
Icons Heroicons + custom icon libraries
Localization Language selector, translations, i18n
Plugins Cross-panel extensions with navigation and widgets

Features

  • Multi-panel -- Multiple independent panels in a single app with separate config, theme, guard and navigation per panel.
  • 3 CSS themes -- Bootstrap 4, Bootstrap 5 and Tailwind CSS with full CSS variable theming (--panel-*).
  • Sidebar state management -- Configurable initial state (expanded/collapsed), persistent or session-only state via localStorage, collapsible toggle control, and icons-only mode when collapsed. Correctly preserved across SPA navigations.
  • Dark mode -- Toggle in navbar with localStorage persistence. Optional toggle on auth pages via dark_mode_show_on_auth.
  • Localization -- Built-in translations for 10 languages (en, es, fr, pt, zh, hi, ar, bn, ru, ja). Language selector in navbar and auth pages. Sidebar labels support translation keys automatically. See Localization.
  • Module system -- Built-in Dashboard, Users and Auth modules. Create custom modules with panel:make-module.
  • Widget system -- StatsCard, Chart and RecentTable widgets. Create custom widgets with panel:make-widget.
  • Plugin system -- Cross-panel extensions with lifecycle hooks, navigation and widgets.
  • Search -- Global search (Ctrl+K) with pluggable providers and permission filtering.
  • Notifications -- Polling notification system with count badge and provider interface.
  • Impersonation -- Sign in as another user with safety guards and stop button.
  • Gate authorization -- PanelGate with Spatie, Laravel Gate or custom drivers.
  • Reusable components -- <x-panel::locale-selector />, <x-panel::dark-mode-toggle />, <x-panel::alert />, <x-panel::button />, <x-panel::card />, <x-panel::icon />, <x-panel::portal />.

Testing

./vendor/bin/pest

License

MIT