- Evergreen PHP baseline supporting the 2 latest stable versions.
- Strict types enforced by Pint.
- Lean, API-friendly boilerplate.
- Immutable dates.
- Stricter Eloquent defaults catch lazy loading and missing attributes early.
- Models are unguarded by default because policing request input is not their job.
- Tooling is already wired: Pest, PHPStan, and Rector.
- Consistent formatting with Pint for PHP and Prettier for everything else.
- Tinker is kept out of production dependencies by default.
- Improved testing setup with clearer conventions for agents.
- Laravel Boost is preconfigured, with sensible .gitignore and project-owned
.aiguidelines taking priority. - SQLite is the default for a minimal, easily customizable database setup.
Create application (replace example-app with desired project name):
composer create-project adiachenko/starter-laravel-app --prefer-dist example-appKeep in mind that
composer create-projectalready does most of the setup for you. It will install dependencies, create .env file, generate app key, and prompt you to configure Laravel Boost.
Navigate to your project and complete the setup:
cd example-app
# Initialize git repo
git init
sh install-git-hooks.sh
# Optionally, scaffold API routes with Sanctum or Passport (add --passport flag)
php artisan install:apiInstalled Git hooks:
-
pre-commitrunscomposer format:check -
pre-pushrunscomposer analyse
If you use Fork, set Fork → Preferences → Git → Env mode to System Shell (details) for Git hooks to work correctly.
Run the main development checks with:
-
composer test— run the default test suites. -
composer format— format files. -
composer analyse— run static analysis.
Additional scripts for external test suite, refactoring, mutation testing, coverage, and Laravel Herd are available in composer.json. Mutation testing and coverage require Xdebug in coverage mode or enabled PCOV.
See the testing guidelines for test organization, conventions, and execution.
VSCode and Cursor automatically load the shared configuration from .vscode/ and suggest the recommended extensions for installation. The config does not prescribe a PHP language server, so install whichever extension you prefer.
Zed automatically loads the shared settings from .zed/settings.json.
Suggested extensions have to be installed manually: EditorConfig, PHP, Laravel.
The config does not prescribe a PHP LSP, so configure whichever you prefer in Zed user settings.
Recommended setup for consistent formatting:
-
Settings | Editor | Code Style: ensure "Enable EditorConfig support" is checked. -
Settings | PHP | Quality Tools | Laravel Pint: set "Path to pint.json" topint.jsonand select "defined in pint.json" as the ruleset -
Settings | PHP | Quality Tools: set Laravel Pint as external formatter -
Settings | Tools | Actions on Save: enable reformat on save -
Settings | Languages & Frameworks | JavaScript | Prettier: use automatic config, enable "Run on save", and prefer Prettier config. Includemdin Prettier file extensions.