This starter kit comes pre-configured with a modern Laravel 12 stack, including Livewire v3 and Livewire Flux, along with a curated set of Laravel packages and developer tooling.
It is created on top of the official Laravel Livewire Starter Kit and has been extended and modified to suit custom requirements.
You may get started by running the following command
laravel new my-app --using=lcamero/laravel-starter-kitOr, if you prefer, use the composer create-project command instead
composer create-project lcamero/laravel-starter-kitRun migrations with
php artisan migrateLastly, a quick way to fire up the configured services and start building is to run the following command:
composer devThis will run vite to serve your asset and listen for changes (npm run dev), run Laravel Pail to tail logs (php artisan pail) and launch Laravel Horizon to manage your queues (php artisan horizon).
You should be able to start developing right away without making any modifications, but you may want to tune certain settings depending on the needs of your project. All packages that come pre-installed are enabled by default, so if you wish to manage some of them you may follow these instructions.
You can provide your license information to activate the pro license with the following command:
php artisan flux:activateMore information can be found in the Flux UI Docs
This starter kit uses Laravel Sanctum for API Token management, which is enabled by default.
Within the Providers/Auth/SanctumServiceProvider.php file you may enable or disable the feature.
Also, you're able to configure the available and default permissions that exist for your application.
Sanctum::enableApiTokens();
// or
Sanctum::enableApiTokens(false);
// Permission that will be selected for new tokens
Sanctum::defaultPermissions([
'read',
]);
// Available permissions for your tokens
Sanctum::permissions([
'create',
'read',
'update',
'delete',
]);This starter kit uses Laravel Socialite to handle OAuth authentication with different providers.
Currently the following providers are available, as long as you configure the service and the provide the environment keys:
To disable this authentication method, remove or comment the appropriate section within config/services.php. This will hide the login button for the service.
// 'google' => [
// 'client_id' => env('GOOGLE_CLIENT_ID'),
// 'client_secret' => env('GOOGLE_CLIENT_SECRET'),
// 'redirect' => env('GOOGLE_REDIRECT_URL').'/auth/google/callback',
// ],More providers can be configured depending on the project needs, the starter kit just comes with the boilerplate for Google at this time.
If you are using Laravel Valet or Herd, your domains using a
.testTLD will not be supported as redirect URLs when setting up Google's OAuth client. For it to work locally you will need to serve your app withphp artisan serveor use a service like Ngrok or Expose
Set the following environment variable in your .env file
PULSE_ENABLED=true
# or
PULSE_ENABLED=falseSet the following environment variable in your .env file
TELESCOPE_ENABLED=true
# or
TELESCOPE_ENABLED=falseSet the following environment variable in your .env file
APP_DEBUG=true
# or
APP_DEBUG=falseA series of packages have been pre-installed and configured to solve common needs in projects. Here's a breakdown of what's included:
Laravel Horizon provides a beautiful dashboard and code-driven configuration for managing Redis queues.
It allows you to monitor throughput, runtime, job retries, and failures in real-time.
php artisan horizonLaravel Pennant is a simple and light-weight feature flag package. Feature flags enable you to incrementally roll out new application features with confidence, A/B test new interface designs, complement a trunk-based development strategy, and much more.
Laravel Pulse is a lightweight, real-time application performance monitoring tool. It provides a dashboard to track key metrics such as application performance, slow queries, job throughput, and system resource usage, helping you identify bottlenecks and optimize your application.
Most Pulse recorders will automatically capture entries based on framework events dispatched by Laravel. However, the servers recorder and some third-party cards must poll for information regularly. To use these cards, you must run the check daemon on all of your individual application servers
php artisan pulse:checkAfter deployment:
php artisan pulse:restartYou can disable Laravel Pulse by adding the following environment variable to your .env file:
PULSE_ENABLED=falseLaravel Sanctum provides a featherweight authentication system for SPAs (single-page applications), mobile applications, and simple, token-based APIs. It allows your application to issue API tokens to your users, which may be used to authenticate API requests.
This starter kit has configured a Sanctum service that allows you to define permissions that can be assigned to tokens so you're free to configure them for your app. These abilities act as scopes, restricting the actions a token can perform.
The abilities for the application should be defined in the app/Providers/Auth/SanctumServiceProvider.php file, on the boot() method. By default, no abilities are available to be assigned, but you can uncomment the code to get started:
Sanctum::permissions([
// 'create',
// 'read',
// 'update',
// 'delete',
]);You may configure default permissions that should be added to all new tokens by calling the defaultPermissions method.
Sanctum::defaultPermissions([
// 'read',
]);Lastly, if you wish to enable/disable the API Tokens feature you may configure the following in the service provider
Sanctum::enableApiTokens();
// or
Sanctum::enableApiTokens(false);Laravel Scout provides a simple, driver-based solution for adding full-text search to your Eloquent models. Using model observers, Scout will automatically keep your search indexes in sync with your Eloquent records.
This starter kit is configured to use the database driver for Scout, which uses "where like" clauses and full text indexes (if configured per column) to filter results from your existing database. You can change the driver and queue settings in your .env file:
SCOUT_DRIVER=database
SCOUT_QUEUE=trueThe User model is configured as serchable by default and will automatically sync when changes are made to the models.
You can import your existing models using the scout:import command:
php artisan scout:import "App\Models\User"For large datasets, you can queue the import operation for better performance:
php artisan scout:queue-import "App\Models\User" --chunk=500To remove all of a model's records from the search index, you can use the scout:flush command:
php artisan scout:flush "App\Models\User"Laravel Socialite provides an expressive, fluent interface for OAuth authentication with popular providers like Google, Facebook, GitHub, and more.
Current providers are listed below. For the most part, all you need to configure is an environment variable for the provider credentials in the correct format. Typically, these credentials may be retrieved by creating a "developer application" within the dashboard of the service you will be authenticating with.
Check config/services.php to review any further required setup.
Get your credentials in the Google Cloud Auth Console.
GOOGLE_CLIENT_ID="XXXXXXX"
GOOGLE_CLIENT_SECRET="XXXXXXX"
GOOGLE_REDIRECT_URL="http://starter-kit.com"Saloon is a PHP library that helps you rapidly build third party API integrations or SDKs. It's configured to be production-ready by default, offers a simple, standardised development flow for your whole team and has utilities to help test your API integrations before you ship to production.
Laravel Boost accelerates AI-assisted development by providing the essential context and structure that AI needs to generate high-quality, Laravel-specific code.
At this time there is no native support for Opencode on the Laravel Boost installation, so a manual configuration was made to add the
AGENTS.mdfile and anopencode.jsonconfiguration file to support the guidelines and MCP provided by the package.
Laravel Debugbar is a development package that adds a toolbar to your application, giving you real-time insights into queries, routes, views, logs, and performance. It helps you debug and profile your Laravel app directly in the browser.
It can be paired with Laravel's Telescope package to gain insight of your application.
You may disable this package by setting the following environment variable in your .env file
APP_DEBUG=falseLaravel Pail is a developer tool for tailing your application logs directly from the terminal.
It provides better insight into application events and errors without having to manually read log files.
php artisan pailLaravel Pint is an opinionated PHP code style fixer for Laravel projects.
It helps enforce consistent code formatting using PHP-CS-Fixer under the hood.
./vendor/bin/pintLaravel Telescope is a debugging and monitoring assistant for your application.
It provides insight into requests, exceptions, database queries, queued jobs, mail, notifications, cache operations, and more through a clean UI.
php artisan telescope:install
php artisan migrateYou can disable Laravel Telescope by adding the following environment variable to your .env file:
TELESCOPE_ENABLED=falsePest is a modern PHP testing framework with a focus on simplicity and developer experience.
It’s built on top of PHPUnit, but offers a much cleaner and expressive syntax, making test writing faster and more enjoyable.
Run your test suite with:
./vendor/bin/pestSpatie Laravel Permission allows you to associate users with permissions and roles.
This kit configures a lean base for permissions via the create_base_permissions migration. A couple of enum classes were created to manage Roles and Permissions but you are free to modify the logic depending on your needs. Overall, you may choose to store your roles and permissions elsewhere (in the database for instance) instead of tracking them via enums, so you will need to make modifications where necessary.
By default, an "Administrator" role is created automatically when migrations are run and associated to an "admin" user. The role is given full permissions via a Gate configuration under the AppServiceProvider.
The administrator account receives the email defined in config/settings.php under 'provision_admin_email. It uses the value from the .envvariableTENANCY_PROVISION_ADMIN_EMAIL`. By default, the credentials for the administrator are the following:
email: admin@example.com
password: passwordYou may reconfigure this as you see fit. You may choose to remove the user creation, modify the base permissions, etc.
MAKE SURE TO CHANGE THE PASSWORD TO A RANDOM STRING OR REMOVE THE USER CREATION ENTIRELY BEFORE SHIPPING TO PRODUCTION
You may also call the following artisan command to create an administrator account for your application:
php artisan user:create-adminThe kit provides a basic set of component to manage users/permissions via a user interface in the application, so you will have to extend or replace it based on your specific requirements.
Only administrators are able to access the user management controls.
Spatie Laravel Settings allows you to store strongly typed application settings in a repository (database, redis, etc.) and use them through an application without hassle.
The kit installs only 1 setting to define the application name and it is created when the migrations run. You're free to build on top of this to create your settings configuration.