pepperfm / laravel-starter-kit
The skeleton application for the Laravel framework.
Package info
github.com/pepperfm/laravel-starter-kit
Type:project
pkg:composer/pepperfm/laravel-starter-kit
Requires
- php: ^8.5
- laravel/framework: ^13.0
- laravel/prompts: ^0.3.5
- laravel/tinker: ^3.0
Requires (Dev)
- fakerphp/faker: ^1.23
- fruitcake/laravel-debugbar: ^4.2
- laramint/laravel-brain: ^2.2
- larastan/larastan: ^3.2
- laravel/boost: ^2.4
- laravel/pao: ^1.0
- laravel/pint: ^1.13
- laravel/sail: ^1.26
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- pepperfm/ai-guidelines: ^1.5
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- spatie/laravel-ray: ^1.43
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-11-03 18:05:52 UTC
README
Laravel Starter Kit
A modern, developer-friendly Laravel starter kit featuring a curated selection of tools and a pragmatic setup flow — ready for production-focused application work from day one.
✨ Features
- Laravel 13, PHP 8.5+ requirement
- Optional custom admin frontend foundation during setup:
- Inertia 3 + Vue 3 + TypeScript
- Nuxt UI 4 + Tailwind CSS 4 (based on Nuxt UI Dashboard primitives, without requiring Nuxt)
- Ziggy, Vue I18n, VueUse, Valibot
- Choose your API utility during setup:
- API scaffolding with Laravel Sanctum
- Ready-to-use Swagger Nuxt UI docs with pepperfm/swagger-nuxt-ui-for-laravel
- Optional observability tools during setup:
- Telegram bot integration via defstudio/telegraph
- Local development environment powered by Laravel Sail
- UUID primary keys for the base user model
- Pre-configured with:
- Pest + Larastan + Laravel PAO for clean and agent-friendly testing
- Laravel Debugbar, Ray, and Pint
📦 Installation
laravel new example-app --using=pepperfm/laravel-starter-kit --database=pgsql
The --database=pgsql flag is important: Laravel Installer defaults custom starter kits to SQLite when no database driver is specified.
When using Sail, choose the Sail runtime during setup so containers are available for Laravel Installer's final migration step.
After creating your project, the interactive starter:setup command will run automatically, helping you choose:
- Whether setup commands should run on the host machine, through Sail, or auto-detect a running Sail container
- Whether to publish the custom admin frontend foundation
- API support packages, Sanctum, and Swagger Nuxt UI docs
- Optional features like Log Viewer, Horizon, Telescope, Pulse, Telegram bot integration, Ray debugger, Media Library, and Permissions
- Review an installation summary before Composer, frontend, or post-install Artisan commands run
You will also be prompted to configure environment variables WWWUSER and WWWGROUP for proper permissions. The setup command also normalizes the PostgreSQL DB_* variables so they are active after laravel new.
If you choose Sail and the app container is not running yet, setup can start Sail with ./sail up -d --build before installing selected packages.
Admin preset notes: The initial installation replaces the base package.json, vite.config.js and resources/css/app.css with the Inertia/Vue foundation. To avoid destroying work, the installer refuses to overwrite any other existing preset target (including an already installed panel). It is not a general-purpose update command for existing projects.
The panel is protected by Laravel session authentication. Guests visiting /panel are redirected to /panel/login; failed attempts are rate-limited, and logout invalidates the session. There is intentionally no public sign-up.
After installing the admin preset, run migrations and create an initial application user with php artisan panel:user (the command securely prompts for a password). Then sign in at /panel/login. Any authenticated application user can currently access the panel; add roles/policies if the project requires a separate administrator role. For public deployments, configure HTTPS and secure cookie/session settings.
Frontend package constraints are refreshed for new installs. The PHP lockfile remains pinned until it is regenerated with Composer, so run composer update -W in a controlled environment and review its diff before releasing a refreshed template.
During setup, the selected command runtime controls:
- Installing selected composer packages
- Publishing selected frontend preset files and installing frontend dependencies
- Running post-install artisan commands specific to installed packages
If you skip Sail during setup, you can start it later:
chmod 755 ./sail ./sail up -d --build
⚙️ Setup Command
Run manually anytime:
php artisan starter:setup
Interactive setup will help you customize your project features and install optional packages with their post-install steps.
Preset mode is available when you want a repeatable setup path:
php artisan starter:setup --preset=api php artisan starter:setup --preset=admin php artisan starter:setup --preset=observability php artisan starter:setup --preset=full
Available presets:
| Preset | Includes |
|---|---|
api |
Sanctum, Swagger Nuxt UI docs, Spatie Laravel Data |
admin |
Custom Inertia + Vue + Nuxt UI admin frontend foundation |
observability |
Log Viewer, Horizon, Pulse, Telescope as a dev dependency |
full |
admin + api + observability |
🛠 Post-Install Commands
For installed packages, the following post-install artisan commands will run automatically unless --no-post is used:
| Package | Команды |
|---|---|
laravel/sanctum |
php artisan install:api --without-migration-prompt |
opcodesio/log-viewer |
php artisan log-viewer:publish |
laravel/horizon |
php artisan horizon:install |
laravel/telescope |
php artisan telescope:installphp artisan migrate |
laravel/pulse |
php artisan vendor:publish --provider="Laravel\Pulse\PulseServiceProvider"php artisan migrate |
defstudio/telegraph |
php artisan vendor:publish --tag="telegraph-migrations"php artisan migrate |
spatie/laravel-medialibrary |
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-migrations"php artisan migrate |
spatie/laravel-permission |
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"php artisan optimize:clearphp artisan migrate |
🧪 Testing & Quality
make pint # Show unstaged files with codestyle issues make pint-hard # Fix codestyle issues automatically make stan # Run Larastan (static analysis) make test # Run all tests via Pest