s-a-c / laravel-null-impossible
Laravel starter kit for the Null Impossible Domain architecture with teams, Sanctum, Reverb, and a minimal Filament admin adapter.
Package info
github.com/s-a-c/laravel-null-impossible
Type:project
pkg:composer/s-a-c/laravel-null-impossible
Requires
- php: ^8.5
- filament/filament: ^5.6
- laravel/chisel: ^0.1.0
- laravel/fortify: ^1.37.2
- laravel/framework: ^13.7
- laravel/reverb: ^1.6
- laravel/sanctum: ^4.2
- laravel/tinker: ^3.0
- livewire/blaze: ^1.0
- livewire/flux: ^2.13.1
- livewire/livewire: ^4.1
Requires (Dev)
- carthage-software/mago: ^1.29
- driftingly/rector-laravel: ^2.4
- fakerphp/faker: ^1.24
- fruitcake/laravel-debugbar: ^4.2
- larastan/larastan: ^3.10
- laravel/pail: ^1.2
- laravel/pao: ^1.0.6
- laravel/pint: ^1.29
- laravel/sail: ^1.61
- mockery/mockery: ^1.6
- mrpunyapal/peststan: ^0.2.10
- mrpunyapal/rector-pest: ^0.2.15
- nunomaduro/collision: ^8.9
- pestphp/pest: ^4.7
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-faker: ^4.0
- pestphp/pest-plugin-laravel: ^4.1
- pestphp/pest-plugin-livewire: ^4.1
- pestphp/pest-plugin-mutate: ^4.0
- pestphp/pest-plugin-type-coverage: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.2
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-strict-rules: ^2.0
- rector/rector: ^2.4
- rector/swiss-knife: ^2.4
- rector/type-perfect: ^2.1
- roave/security-advisories: dev-latest
Conflicts
- ext-psr: *
This package is auto-updated.
Last update: 2026-06-02 16:48:13 UTC
README
Laravel 13 starter kit for the Null Impossible Domain architecture: custom Option / Result monads, team-aware auth, Sanctum and Reverb boundary examples, and a minimal Filament admin adapter.
Requirements
- PHP 8.5+
- Composer
- pnpm 11+
- Laravel Installer 5.28+
Create a New Application
Use Herd’s PHP (or any PHP without the psr extension). Homebrew PHP often ships ext-psr, which breaks Pest’s mutation plugin during laravel new with a PsrExt\SimpleCache\CacheInterface fatal error.
laravel new my-app --using=s-a-c/laravel-null-impossible --pnpm
cd my-app
composer run dev
If the installer reports Pest initialized failed but the app was created, check php -m | grep psr. With Herd’s PHP, php artisan test should still pass. Disable the extension on Homebrew PHP (pecl uninstall psr or use Herd’s php on your PATH first).
Or from the repository before Packagist publication:
laravel new my-app --using=https://github.com/s-a-c/laravel-null-impossible --pnpm
The installer runs Composer post-create-project-cmd (app key, SQLite file, migrations). It does not seed default users. Register the first account through the app, or run php artisan db:seed in local only for a demo user.
Choosing Pest in the installer prompts is fine (the kit already uses Pest). A failed Pest initialized step is usually the ext-psr conflict above, not a broken application.
Setup (Existing Clone)
composer setup
This installs PHP dependencies, copies .env, generates a key, migrates, installs pnpm packages, and builds frontend assets.
Quality Gates
| Profile | Command | When to use |
|---|---|---|
| Fast | composer test |
Day-to-day app development after laravel new |
| Strict | composer ci:strict |
Maintaining the Null Impossible core (PHPStan, Mago, type/coverage/mutation) |
What Is Included
- Core:
App\Monads,App\Domain,App\Application,App\Infrastructure - Auth: Fortify with teams (personal team, current team, invitations, slugged URLs)
- API: Sanctum token issuance via application
Resultworkflows - Broadcasting: Reverb with channel authorization at the boundary
- Admin: Filament panel with policy-based Team resource (no Shield/plugin bundle)
What Is Not Included
- Private Composer repositories or premium dev tooling
- Horizon, Pulse, Telescope (add separately if needed)
- Filament Shield and optional Filament plugins
Documentation
- Glossary: CONTEXT.md
- Architecture: docs/architecture/null-impossible-domain/
- ADRs: docs/adr/
Publishing
This repository is the canonical source for the s-a-c/laravel-null-impossible Packagist package. Submit the package at packagist.org after pushing to GitHub.
License
MIT