cleaniquecoders/kickoff
Kickoff is a Laravel starter package that scaffolds new projects with boilerplate for authentication, roles and permissions, admin layouts, and common generators, so you can skip repetitive setup and start building features right away.
.nvmrc, engines.node). If you're on PHP 8.4, stay on 1.38 — don't do a half-upgrade where Kickoff runs on 8.5 but the app can't.composer update: run the kickoff-patch skill, re-publish media-manager-views, set QUEUE_CONNECTION=redis and add the scheduler cron in production, and rename CACHE_DRIVER → CACHE_STORE.bin/deploy, bin/backup-db, routes/console.php, config/trustedproxy.php, Admin > Settings > Mail, and the new guardrail tests (RouteSmokeTest, DeployParityTest, FluxIconsExistTest, ContentSecurityPolicyTest). Those tests encode what the package expects from your app — read them before customising.migrate:fresh --seed to get a working login, then php artisan optimize and the test suite before touching anything. optimize is a real canary here — it's how the broken <x-input-otp> component in the 2FA screen surfaced.bin/deploy only. It now runs under set -Eeuo pipefail, does a checked git state, npm build, optimize, a health check on /up and /, and an honest rollback. Add your own steps as separate scripts invoked from the deploy path rather than editing it inline, so DeployParityTest keeps meaning something.operations --isolated. This is the supported invocation.bin/backup-db verifies the archive and exits non-zero when GPG fails. Alert on exit status, not on log scraping, or you'll only learn about a broken archive at restore time.routes/console.php alongside data:purge, package pruning and the Horizon snapshot. Add tasks there and ship a single schedule:run cron in production.withEvents(discover: false) — listeners register once, but auto-discovery is off. New listeners go in the same explicit list, not in a class you expect Laravel to find.AccessControlSeeder is additive so re-running is safe. Prefer extending it (or adding a seeder after it) over editing it.CACHE_DRIVER was ignored entirely before this release. If cache behaviour has felt inexplicable, that's why. Rename it to CACHE_STORE in .env, .env.example and every secret store.operations --force never existed. Any script calling it silently did nothing. Grep your ops scripts for --force and fix the call sites.ContentSecurityPolicyTest.127.0.0.1. Fine locally; for CI or remote access use a compose override rather than editing the shipped file, so upgrades stay clean.config/trustedproxy.php configured you'll see mixed content, redirect loops, and rate limiting that collapses every client into a single IP.localhost for local testing will be rejected — use a public tunnel. Verify the signature against the raw request body, never a decoded/re-encoded array.#[Url] perPage is clamped server-side. Don't rely on arbitrary query values and don't re-implement the clamp in JavaScript or the two will disagree.migrate:fresh --seed yields a login but is destructive. Make sure no deploy or patch script can reach it outside a local environment.kickoff-patch plus the four guardrail tests is the fastest way to find it.How can I help you explore Laravel packages today?