laravel/jetstream
Laravel Jetstream is a starter kit for Laravel 11.x and prior that scaffolds authentication, registration, profile management, API tokens, teams, and session management using Livewire or Inertia with Tailwind CSS.
Architecture fit. Jetstream is not a runtime library — it is a scaffolding generator that publishes code into the host application. composer require laravel/jetstream plus php artisan jetstream:install livewire|inertia copies controllers, actions, Livewire/Vue components, Blade views, routes, config, and tests into the app, and wires in Fortify (authentication backend), Sanctum (API tokens), and a Tailwind-based design layer. The architectural implication is significant for a TPM: after install, the code is ours. Jetstream is a build-time dependency whose output must be owned, versioned, and patched by our team, not an upstream package we upgrade in place. Fit is strongest for greenfield Laravel apps that want a credible auth/teams/2FA/token baseline in days, and weakest for brownfield apps or teams expecting managed, upgradeable dependencies.
Integration feasibility. Install is a single command with flags controlling surface area (--teams, --api, --dark, --verification, --pest, --ssr, --composer), plus migrations for teams, team invitations, two-factor columns, and personal access tokens. Two mutually exclusive stacks exist: Livewire (PHP-centric, minimal JS) and Inertia + Vue 3 + Ziggy (SPA-style, Node/Vite build). Feasibility is high on a clean Laravel 11-or-earlier app and low on an existing app with established auth, routing, or design conventions — in that case, the pragmatic path is to use Fortify directly and cherry-pick Jetstream actions/components rather than run the installer.
Technical risk. The dominant risk is lifecycle, not code quality. The README explicitly scopes the kit to "Laravel 11.x and prior" and redirects to the newer official starter kits, which is a clear signal that Jetstream is on a maintenance trajectory rather than the strategic path. That makes it a poor foundation for a multi-year product unless we accept ownership of the copied code. Secondary risks: stack lock-in (Tailwind 3-era config, Vite 4/5, Inertia 0.6.x, Livewire 3, Alpine), manual application of security fixes because patches land in the package but not in our already-published files, and a non-trivial security surface (2FA challenge flow, recovery codes, token management, team invitations by email). Dependents: 0 in the supplied metadata is a weak ecosystem signal — likely a registry artifact, but it should not be used as validation either way. MIT license removes legal risk.
Key questions.
Stack fit. Baseline is PHP 8.1+ on Laravel 10/11, Composer, npm, and Vite. Livewire is the lower-friction fit for a PHP-heavy team and reduces JS surface area significantly; Inertia + Vue 3 (with Ziggy for route helpers and optional SSR) fits teams with an existing SPA skill set and a Vue-oriented design system. Tailwind is mandatory to the scaffolding; the kit predates Tailwind 4 conventions, so plan on Tailwind 3 semantics or a deliberate migration. Fonts are served via bunny.net.
Migration path. Treat this as a greenfield accelerator only. For an existing application, the viable path is: install Fortify for the auth backend, add Sanctum if tokens are needed, then port Jetstream's actions and views selectively (profile update, password update, 2FA enable/confirm, session logout-other-browsers, token CRUD, team invitations). A useful tactic is generating Jetstream in a throwaway reference app and diffing against our codebase to lift only what we need. Do not attempt to run the installer over an app with existing auth routes, layouts, or migrations without an isolated branch and a rollback plan.
Compatibility. Pin exact versions in composer.json and package.json and validate a matrix (Laravel 10 and 11, PHP 8.2/8.3, Node LTS, Livewire 3, Inertia 0.6.x, Tailwind 3, Vite 4/5, CommonMark 1/2). Known breakage axes historically: Vite majors, Tailwind majors, Livewire majors, Inertia/Ziggy coordination, and PHP 8 type strictness. Anything relying on Laravel 12+ conventions should be assumed unsupported.
Sequencing.
--teams, --api, --verification, --ssr) — retrofitting these later is more expensive than scoping them now.Maintenance. The primary operational cost is code ownership. Upstream patches (v3.x has been steady, largely small correctness fixes: 2FA page reload, team-change visibility, provider registration, unused imports) will not flow to us automatically. We need a standing process — quarterly re-diff against upstream, plus reactive pulls for security-relevant Fortify/Sanctum fixes — and a named owner. Given the README's explicit redirection to the newer starter kits, budget for a future replatform evaluation rather than assuming indefinite upstream support.
Support. MIT-licensed OSS with no vendor SLA. Support is community plus the maintainers' release cadence; the changelog shows a maintainer-heavy cadence with occasional contributor fixes. Internal capability is the real support model: at least one engineer must be able to reason about Fortify's authentication pipeline, 2FA challenge handling, and Sanctum token semantics.
Scaling. Jetstream is application-layer, so it does not constrain horizontal scaling directly, but several components carry scale-relevant edges: the database session table used for "logout other browsers," Sanctum personal access tokens (one row per token, revocation paths), profile photo storage disk (default local — move to S3 for multi-instance deployments), team invitation emails (queue them), and Inertia SSR as an optional perf lever. Watch for N+1s around team membership and current-team resolution as team counts grow.
Failure modes.
Ramp-up. Low calendar cost for Laravel-fluent engineers (one to three days to a working install with tests passing), but the effective surface is broad — Fortify, Sanctum, Tailwind, Alpine, and either Livewire or Inertia/Vue/Ziggy. The shipped Pest suite and official docs reduce onboarding friction. Recommended guardrails: run the spike before committing, document the deviation log from stock scaffolding, and treat the auth flows as owned product surface requiring review, not generated boilerplate.
How can I help you explore Laravel packages today?