Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Breeze Laravel Package

laravel/breeze

Laravel Breeze is a minimal starter kit that scaffolds authentication and a clean UI with Blade, Vue, or React, including login, registration, password reset, email verification, and profile pages to speed up new Laravel apps. Supports Laravel 11.x and prior.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit Breeze is not a runtime library — it is a code-generation/installation package. You add it as a dev dependency, run php artisan breeze:install <stack>, and it publishes controllers, form requests, routes, views (Blade or Inertia), front-end config and tests directly into the host application. After install the package is inert: your application owns the code.

That is the correct fit for teams that want a minimal, opinionated, fully-owned authentication surface with no upstream black box, and the wrong fit for teams that want auth they never have to touch. Five stacks are supported (Blade, Livewire, React+Inertia, Vue+Inertia, API), so the TPM must select exactly one and treat it as a durable architecture decision — switching stacks later is a re-scaffold, not a configuration change.

Scope boundary matters: Breeze ships registration, login, logout, password reset, email verification, password confirmation, profile update and account deletion. It deliberately excludes 2FA, teams, roles/permissions, API token management and social login — those live in JetStream or bespoke work. If the roadmap needs any of them within 2–3 quarters, budget custom build on top.

Integration feasibility High for greenfield: one install command, generated Pest/PHPUnit tests, Vite + Tailwind wiring, optional ESLint/Prettier, and package-manager support across npm/pnpm/yarn/bun/deno. Low-to-moderate for brownfield: the installer writes into app/Http/Controllers/Auth, app/Http/Requests/Auth, routes/auth.php, resources/views, middleware registration and front-end entry points. Any existing auth, layout or Tailwind configuration collides and must be reconciled by hand.

Technical risk

  1. Strategic risk — highest. The README states Breeze is for Laravel 11.x and prior and redirects to laravel.com/starter-kits. Recent releases still carry Laravel 12 and 13.x compatibility work (v2.3.5, v2.4.0), so the package is being kept alive but is no longer the flagship path. Adopting it now means adopting a maintenance-mode baseline. Acceptable for shipping, but it must be a conscious, owned decision rather than a default.
  2. Patch propagation risk. Because code is vendored, upstream fixes do not arrive via composer update. Examples that matter: v2.3.7 (middleware group and alias registration during install) and v2.4.2 (removing a bootstrap.js import for Laravel 13+). Security and compatibility fixes must be manually diffed and applied — exactly the class of change you cannot skip.
  3. Version-matrix ambiguity. README (11.x and prior) contradicts the changelog (12, 13.x). Pin explicitly and verify; trust neither source alone.
  4. Signal quality. 3,059 stars, 0 declared dependents and an opportunity score of 44.98 are artifacts of the install model rather than quality judgments — but they do mean third-party integrations and community coverage are thinner than the star count implies.

Key questions

  • Does Security/Legal require a currently supported upstream auth baseline, or is vendored, team-owned auth acceptable?
  • If we ship on Breeze, who owns the upstream diff review, and is that person resourced quarterly?
  • Do we need 2FA, teams, roles or API tokens in the next four quarters? If yes, Breeze-plus-custom may exceed the cost of the current starter kits.
  • Which stack can we sustain — Blade/Livewire (PHP-only team) or Inertia+React/Vue (requires front-end and TypeScript capability)?
  • Is Inertia SSR required? It is the highest-friction configuration in the tree.
  • What happens to our auth surface at the next Laravel major upgrade?

Integration Approach

Stack fit Match to team competency, not fashion. PHP-centric team → Blade or Livewire. Existing SPA or strong TypeScript capability → Inertia React or Vue. Mobile or third-party consumers → api stack with Sanctum. One stack per product; do not mix within a codebase.

Migration path Greenfield: laravel new → composer require laravel/breeze --dev → php artisan breeze:install <stack> → npm install && npm run build → run migrations → run the generated test suite as an acceptance gate. Confirm the users table migration exists (or is intentionally relying on the default) before first deploy — make this an explicit checklist item, not an assumption.

Brownfield: do not run the installer against a live application tree. Install into a scratch copy, diff the published output against current auth/layout/route files, then hand-merge. Budget real engineering time; this is the step teams consistently underestimate.

Compatibility Freeze the Laravel minor version at install time. Record the exact Breeze tag installed — pin it in composer.json as a dev dependency, never a floating constraint. If using the API stack, verify Sanctum/CORS dev entries (v2.2.4 exists specifically because of a 127.0.0.1:3000 local auth issue). If Inertia, pin Inertia v2 and confirm the framework bridge version.

Sequencing

  1. Decide the stack and record the decision (ADR) before any customization.
  2. Install, build, and get the generated tests green.
  3. Customize layout and navigation only after tests pass.
  4. Remove demo scaffolding you will not ship (upstream removed the welcome view in v2.0.3 — don't reintroduce an equivalent).
  5. Build domain features on top of the auth baseline.
  6. Evaluate 2FA/teams/roles as separate workstreams only after the above. Slipping steps 1 or 4 causes the most rework.

Operational Impact

Maintenance The dominant ongoing cost is upstream tracking, not package upgrades. Establish a lightweight ritual: on each release, read the changelog, classify (security / Laravel compatibility / cosmetic), and diff app/Http/Controllers/Auth, app/Http/Requests/Auth, routes/auth.php, and the front-end auth pages. Most releases are noise (dependency bumps, lint fixes, a switch→match refactor); a minority are load-bearing (middleware registration, ValidationRule migration, bootstrap import removal). Also plan the eventual move to the current starter kits — keep customizations concentrated in few files so that migration stays a day, not a month.

Support No vendor SLA. Support equals the Laravel community plus the team that wrote your customizations. Because the code sits in your repository, on-call engineers can debug it without understanding third-party internals — a real advantage over a black-box auth package. The counterweight: nobody upstream fixes your fork.

Scaling Auth itself scales cleanly — request-scoped, session/DB-backed, standard Laravel. Three things to review rather than inherit: rate limiting on login and password reset (the LoginRequest throttle key), email throughput for verification and reset flows, and session/driver choice at multi-node scale. None are Breeze-specific; Breeze simply hands you defaults that must be reviewed for production.

Failure modes

  • Installer overwrites or conflicts with existing files → mitigated by installing into a scratch branch first.
  • Middleware group/alias misregistration after partial upgrades (the v2.3.7 bug class) → auth routes 500 or silently unauthenticated. Gate with generated feature tests.
  • Node tooling drift across npm/pnpm/bun/deno and lockfile handling → non-reproducible builds. Pin one package manager in CI.
  • Inertia SSR setup failures (hydration, Ziggy props) — historically the highest-frequency bug cluster in the changelog. If SSR is not a stated requirement, do not enable it.
  • Stale baseline: running Laravel 13 without applying v2.4.2 leaves a bootstrap.js import that breaks the build.
  • Silent divergence: aggressive customization without upstream tracking reaches a state where no future patch is applicable.

Ramp-up Low for any Laravel developer — the files are idiomatic, familiar and few. Blade and Livewire stacks onboard in hours; Inertia React/Vue requires TypeScript and Inertia familiarity and adds days. The TPM-facing cost is really process ramp-up: getting the upstream-diff ritual and the "we own this code" ownership model into the team's definition of done.

Bottom line: Breeze is mature, low-risk and well understood, with a shrinking strategic tail. Use it when you want owned, minimal auth and will fund the maintenance ritual; prefer the current Laravel starter kits for new work that needs a supported forward path.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections