ilhamsyabani / laravel-volt-starter
A modern, MIT-licensed Laravel starter kit using Livewire Volt, Laravel Folio, and Tailwind CSS โ 20+ custom UI components, theming system, and CRUD generators included.
Package info
github.com/ilhamsyabani/laravel-volt-starter
Language:Blade
pkg:composer/ilhamsyabani/laravel-volt-starter
Requires
- php: ^8.2
- blade-ui-kit/blade-icons: ^1.6
- laravel/framework: ^11.0|^12.0|^13.0
- spatie/laravel-package-tools: ^1.16.0
Requires (Dev)
- laravel/folio: ^1.0
- laravel/pint: ^1.0
- livewire/livewire: ^4.0
- livewire/volt: ^1.10
- nunomaduro/collision: ^8.0
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
Suggests
- codeat3/blade-phosphor-icons: Required for icon components (^1.0)
- laravel/folio: Required for file-based routing (^1.0)
- livewire/livewire: Required for Volt components (^4.0)
- livewire/volt: Required for single-file Volt components (^1.10)
README
A modern, opinionated Laravel starter kit using Livewire Volt, Laravel Folio, Flux UI, and Tailwind CSS.
Stop repeating yourself โ get a production-ready structure in minutes.
โจ What's Included
| Feature | Detail |
|---|---|
| ๐งฉ Livewire Volt | Single-file reactive components |
| ๐ Laravel Folio | File-based page routing |
| ๐จ 20 UI Components | Tier 1 + Tier 2 โ Button, Input, Textarea, Select, Checkbox, Radio, Toggle, Badge, Card, Alert, Toast, Spinner, Modal, Dropdown, Table, Pagination, Tabs, Breadcrumb, Avatar, Tooltip, Skeleton, Empty State โ 100% MIT, no license needed |
| ๐ Theme System | CSS-variable based โ switch entire color scheme with one class (theme-rose, theme-emerald, theme-amber, theme-sky, or build your own) |
| ๐ Auth scaffolding | Login, register, email verify, password reset |
| ๐ฅ Role system | superadmin, admin, user out of the box |
| ๐ Dark mode | Full dark mode with persisted preference |
| ๐ Toast notifications | Global notify system, stackable |
| ๐ฑ Responsive sidebar | Mobile-ready navigation with Alpine.js |
| ๐ ๏ธ CRUD generator | volt-starter:crud Post and you're done |
| ๐ Page generator | volt-starter:page users/index --auth |
| ๐ผ๏ธ Component Showcase | Built-in /showcase page to preview & test themes |
๐จ Theming
All components use CSS variables defined in resources/css/volt-starter.css. Switch the entire color scheme by adding a class to <html>:
<html class="theme-rose"> <!-- or theme-emerald, theme-amber, theme-sky -->
Or define your own theme:
.theme-custom { --vs-primary-500: 168 85 247; /* your RGB values */ --vs-primary-600: 147 51 234; --vs-primary-700: 126 34 206; /* ... */ }
No paid component library required โ everything is plain Tailwind + Blade.
๐ Installation
composer require ilhamsyabani/laravel-volt-starter
Then run the install command:
# Basic install (layouts + dashboard) php artisan volt-starter:install # With authentication scaffolding php artisan volt-starter:install --auth # With auth + role system php artisan volt-starter:install --auth --roles
โ๏ธ Requirements
- PHP ^8.2
- Laravel ^11.0 or ^12.0
- Livewire Volt ^1.0
- Laravel Folio ^1.0
- Tailwind CSS (via Vite) โ already in fresh Laravel installs
๐ ๏ธ Generator Commands
Generate a Volt + Folio page
# Creates resources/views/pages/products/index.blade.php php artisan volt-starter:page products/index --auth # Bare minimum (no boilerplate) php artisan volt-starter:page reports/monthly --bare
Generate full CRUD pages
# Basic CRUD for a Post model php artisan volt-starter:crud Post # With specific fields php artisan volt-starter:crud Product --fields=name:string,description:text,price:string,stock:integer
This generates:
resources/views/pages/
โโโ products/
โโโ index.blade.php โ GET /products
โโโ create.blade.php โ GET /products/create
โโโ [product]/
โโโ edit.blade.php โ GET /products/{product}/edit
๐ Published File Structure
After running volt-starter:install --auth --roles:
resources/views/
โโโ components/
โ โโโ layouts/
โ โ โโโ app.blade.php # Main layout wrapper
โ โ โโโ app/
โ โ โโโ sidebar.blade.php # Navigation + toast system
โ โโโ ui/
โ โโโ button.blade.php # Extended button component
โ โโโ badge.blade.php # Role/status badge
โโโ pages/
โโโ dashboard.blade.php # Main dashboard
โโโ auth/
โ โโโ login.blade.php
โ โโโ register.blade.php
โ โโโ forgot-password.blade.php
โโโ settings/
โโโ profile.blade.php
๐ Toast Notification System
Available everywhere via Livewire dispatch:
// In any Volt component $this->dispatch('notify', type: 'success', message: 'Saved!'); $this->dispatch('notify', type: 'error', message: 'Something went wrong.'); $this->dispatch('notify', type: 'warning', message: 'Please check your input.'); $this->dispatch('notify', type: 'info', message: 'Processing...');
๐ฅ Role System
When installed with --roles, a role column is added to users table:
// In any Volt component or middleware auth()->user()->role // 'superadmin' | 'admin' | 'user' // Helper trait (included) use Ilhamsyabani\VoltStarter\Traits\HasRoles; $user->isAdmin(); // true if admin or superadmin $user->isSuperAdmin(); // true if superadmin $user->isUser(); // true if user
๐ก Why This Package?
Laravel already ships with Breeze and Jetstream โ but neither of them uses the modern Volt + Folio approach. If you've adopted Livewire Volt's single-file component style and Laravel Folio's file-based routing, you know there's no starter kit for this combination.
This package fills that gap.
๐ค Contributing
Pull requests are welcome! Please read CONTRIBUTING.md first.
git clone https://github.com/ilhamsyabani/laravel-volt-starter
cd laravel-volt-starter
composer install
./vendor/bin/pest
๐ License
MIT โ see LICENSE
Built with โค๏ธ by ilhamsyabani ยท Indonesia ๐ฎ๐ฉ