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.
Integrated Filament SEO Pro for real-time SEO analysis, readability scoring, and meta tags rendering.
Standardized on the Livewire V3 class format for all dynamic components.
Refactored User administration with multi-role support and styled status badges.
The starter kit includes a robust suite of custom helper classes and global wrapper functions to simplify date formatting, sanitize rich text input, format locale-aware currency, process image uploads/resizes, and optimize page-level SEO metadata. All utility helpers are centralized and fully documented.
See the dedicated helpers.html (or HELPERS.md) page for full signatures, parameter definitions, and clean PHP code examples.
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.
β οΈ Important: The <livewire:socialite /> component automatically hides itself when no integrations are active. You must uncomment the provider blocks in config/services.php and set their credentials in .env for the buttons to appear in the UI.
<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 integrates the premium filament-seo-pro package to provide real-time search engine optimization, keywords optimization, readability analysis, and live previews of search results directly in Filament resource panels. The application's main layout file (resources/views/layouts/app.blade.php) is already pre-configured to render these SEO meta codes dynamically.
Attach the trait to any Eloquent model to connect it with polymorphic SEO metadata:
Add the prebuilt SEO tab component to resource form schemas to unlock the analysis editor:
The global HTML <head> renders SEO tags, Open Graph properties, Twitter cards, and Schema.org JSON-LD dynamically with clean fallbacks for static pages:
Generate a structured XML sitemap using the integrated spatie/laravel-sitemap console command, scheduled daily:
Managed via public/robots.txt, directing search engines away from admin paths while indexing layouts:
See the official package repository and documentation at filament-seo-pro Documentation for advanced usage, custom checks, and configurations.
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 starter kit features a secure, industry-standard Time-based One-time Password (TOTP) Two-Factor Authentication system for admin panel protection. Unverified users with 2FA enabled are locked to the challenge page while keeping their Laravel sessions intact.
Admin users can enable/disable 2FA from the edit user interface. Opening the modal generates a persistent secret and renders a scanable SVG QR code inline:
The custom TwoFactorMiddleware intercepts all panel requests for users who have 2FA enabled, redirecting them to verification if not verified in their session:
The ProfileValidationRules trait centralizes common email and password validation rules across registration, edit profile, and password reset interfaces to ensure consistent architecture and security policies.
Centralizes email and password rules (e.g. required, length, unique check, confirmation matching):
Import and use validation helper methods in form requests, controllers, or livewire components:
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.