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.

Maintainers

Package info

github.com/s-a-c/laravel-null-impossible

Type:project

pkg:composer/s-a-c/laravel-null-impossible

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0


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

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 Result workflows
  • 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

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