Laravel 8 + Jetstream: The Community Debate
· Jerwin Arnado
Archive note: this is a backdated post, written years later while rebuilding this site. It’s dated to the moment it covers, but the hindsight is real.
Laravel 8 shipped on September 8, and the month since has been the loudest the Laravel community has been in years — not about the framework, but about Jetstream, the new application scaffolding that replaced the familiar laravel/ui.
The release itself is good
Lost in the noise is a genuinely solid version. The highlights from my testing:
app/Modelsis back. Models finally get a default home instead of floating inapp/. The framework bowed to what 95% of us were doing anyway.- Migration squashing.
php artisan schema:dumpcollapses years of migration files into one schema file. Anyone with a 200-migration project felt this one personally. - Job batching. Dispatch a batch of queued jobs with
then/catch/finallycallbacks on the whole set. Cleaner than the chained-job workarounds we’ve been writing. - Improved rate limiting, maintenance mode with a
secretbypass URL, model factories rewritten as classes. The factory change breaks old code but class-based factories with states are clearly better.
So why is everyone arguing?
Jetstream ships login, registration, 2FA, session management, even team support — far more than laravel/ui ever did. But it arrived with strong opinions: pick Livewire or Inertia.js as your stack, with Tailwind CSS styling throughout.
The backlash was immediate and, for a few weeks, genuinely heated:
- “I just wanted auth views.” The old
laravel/uigave you simple Blade + Bootstrap scaffolding you could read in an afternoon. Jetstream hands you a full application architecture with technology choices already made. - “I don’t use Livewire or Inertia.” Plain Blade teams and plain Vue-SPA teams both looked at the two doors and saw neither of their houses behind them.
- Customization friction. Early Jetstream buried key logic in published action classes and views that weren’t obvious to modify; the first-release documentation didn’t help.
The community response worked, for the record: docs improved fast, laravel/ui remains available for those who want the old way, and Fortify — the headless auth backend underneath Jetstream — turns out to be the quiet star. Fortify gives you all the auth logic with no frontend opinions. For my Laravel + Vue work, that’s the piece I actually wanted.
My take
The strength of an opinionated framework is the opinions; the cost is the week of discourse when the opinions change. Jetstream isn’t wrong — it’s a preview of where Laravel thinks full-stack is going (server-driven UI via Livewire, or SPA-without-API via Inertia, and Tailwind everywhere). Looking at it honestly: a default stack where the frontend and backend stop pretending to be strangers is a bet I’d take.
Practical advice for now: existing apps lose nothing — upgrade for Laravel 8 itself, keep your auth as is. New projects: try Jetstream + Inertia if you live in Vue like I do, or go Fortify-only and bring your own frontend. And read the upgrade guide before touching the factories.
The drama will fade. schema:dump is forever.