mrsafalpiya/strictly-laravel
Strictly Laravel adds opinionated strictness to your Laravel app: enforced type declarations, stricter Eloquent models, and guards against loose comparisons so bugs surface early. Lightweight, configurable, and easy to drop into existing projects.
ci:check:install and ci:check:generate turn "did someone hand-edit a converted file or leave a stale route declaration?" into a build failure instead of a runtime surprise. That's a decision to enforce consistency mechanically rather than through review checklists.config/strictly.php of declarations for features the app doesn't have — is a bounded, one-time task with an escape hatch (delete the file, re-run strictly:install, get a correctly scoped config). That's a plannable line item, not an open-ended migration.Adopt when:
config/strictly.php that stays honest about what exists in the codebase.ci:check:* commands give you that cheaply.Look elsewhere or wait when:
config/strictly.php cleanup after upgrading to v0.3.0 is small but should not be bundled into a code freeze.To executives: v0.3.0 closes a gap that made trimming the starter kit's login features risky. Teams that turned off features like two-factor or passkeys used to get a half-converted app and a config file lying about what existed. That's now handled, and CI catches it if it ever regresses — which means we can scope auth to what customers need without paying a hidden maintenance tax, and we can add features later without a rework.
To engineering: Upgrade is low-risk for full-featured apps — no action needed. For apps that kept only some kit auth features, run the upgrade, then reconcile config/strictly.php: delete declarations for features you don't have, or if the file was never hand-edited, delete it and re-run strictly:install to get one published for your actual feature set. Verify with ci:check:install (fails with <file> (not converted) for anything still pending) and ci:check:generate (fails with config/strictly.php declares what doesn't exist). Wire both into the pipeline so the half-converted state can't come back.
How can I help you explore Laravel packages today?