A premium, highly secure, and pre-integrated Laravel blueprint for speed-of-light administrative development.
Integrated Filament Shield for dynamic, UI-driven permission and role management.
Added Filament Jobs Monitor to track background job execution and failures in real-time.
Standardized on the Livewire V3 class format for all dynamic components.
Refactored User administration with multi-role support and styled status badges.
Setting up your new application is completely automated. Run a single command to touch databases, install packages, and seed administrative access control:
The installation seeder creates a pre-configured Super Admin account for instant administrative dashboard access.
*Click any value above to copy it instantly to your clipboard.
The starter kit combines modern packages configured with security best practices:
A responsive dashboard designed with Filament v5.
Dynamic role & permission management. Secured by Spatie under the hood.
Real-time queue job monitoring using Croustibat Jobs Monitor.
Form-level role management and table display with primary badges.
We ensure that the starter kit stays perfectly healthy, styled, and secure. Run
composer test to trigger all audits:
Spatie Media Library is fully configured and integrated into the starter kit. The storage symlink is automatically generated on installation via automated composer scripts, making media immediately visualizable.
Implement HasMedia and use InteractsWithMedia on any Eloquent model:
Handle temporary files easily and attach them directly to media collections:
The starter kit ships with a fully integrated client-side image cropping system powered by Cropper.js and Alpine.js. Users can select an image, crop it to a desired aspect ratio, and upload the cropped result β all before the file ever touches the server.
The cropping pipeline runs entirely on the client side:
User picks an image via a file input.
A glassmorphic modal opens with the image loaded into Cropper.js. User adjusts the crop area.
On "Apply Crop", getCroppedCanvas() extracts the selection as a canvas, then toBlob() produces a JPEG File blob.
An image-cropped custom event dispatches the file. Livewire's @this.upload() receives it as a temporary upload.
The Livewire component validates and persists the cropped file to Spatie Media Library.
Drop the Alpine component into any Livewire Blade view. The minimal setup:
Click Copy full code above to copy the complete code including the reusable <x-cropping-modal /> component.
The imageCropper component accepts a config object:
Listen for the cropped file and save to Spatie Media Library:
Visit /photo on your local server to see the full cropping + upload workflow in action. The crop modal is a reusable Blade component β use <x-cropping-modal /> anywhere with customizable title, cancelText, and applyText props.
Opcodes Log Viewer provides a comprehensive, interactive administrative interface for inspecting application log files in real-time. Access is secured natively at the service level and dynamic in Filament sidebars.
Authorized exclusively for the super_admin role inside the AppServiceProvider class:
Visible in Filament via the view_log_viewer custom permission inside the admin panel provider:
The starter kit is fully integrated with Laravel Socialite to enable passwordless OAuth logins. The system dynamically auto-detects active providers via the SocialiteProvider enum and renders a styled list of options using a premium Livewire component.
<livewire:socialite />
Fill in credentials inside your .env file, then uncomment the matching array inside config/services.php:
Use the Livewire component anywhere on your login/register pages with options to customize columns, size, and labels:
The starter kit features a pre-configured, end-to-end multilingual and geo-location translation architecture. Combining Spatie's laravel-translatable with local Geo-IP services, administrators can manage content across multiple languages in the Filament Panel, while visitors are automatically served pages in their native tongue based on their geolocation or browser preference.
Implement Spatie's HasTranslations trait on your Eloquent model and list the translatable columns in the $translatable property:
Wrap your input schema using the custom Translatable helper. It generates beautiful, localized tabs based on active locales:
The global SetLocaleMiddleware automatically intercepts web requests, queries the user's IP address, and maps country codes to active languages:
Locales are entirely dynamic. Manage supported languages via System > Settings > Translatable Locales in the Filament Sidebar:
Provide manual language selection anywhere on the frontend. Define a session-setting route and display selector links:
The starter kit ships with a reusable ExportImport trait that adds export and import buttons to any Filament resource table. It supports CSV and Excel (XLSX) formats with styled output and column selectionβno additional setup required for CSV.
Use the trait in any Filament resource and override columns/query if needed:
Add export and import action buttons to the table toolbar in your table schema:
See EXPORT_IMPORT_TRAIT.md for full documentation, including custom query filters, import file format specs, and handling translatable columns.
The AppServiceProvider is meticulously tuned for developer productivity, data integrity, and production safety. We encapsulate these configurations into dedicated, descriptive methods (configureModels, configureCommands, configureDates) to ensure global application behavior is predictable, centralized, and easy to maintain.
Enforced via Model::shouldBeStrict(). This prevents lazy loading, accessing missing attributes, and silent failures, catching common bugs early in development.
Models are unguarded to streamline data handling. We shift safety responsibility to the entry points like Form Requests and Filament Schemas.
An implicit Gate::before check ensures that any user with the super_admin role bypasses all permission checks, simplifying admin access management.
We use DB::prohibitDestructiveCommands() to lock down commands like migrate:fresh in production, adding a critical safety layer against data loss.
By defaulting to CarbonImmutable, we eliminate entire classes of bugs where date objects are accidentally mutated during formatting or math.
Centralizing these defaults in AppServiceProvider ensures every developer on the team follows the same rigorous standards without manual overhead.