Skip to content

← Writing

engineering

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/Models is back. Models finally get a default home instead of floating in app/. The framework bowed to what 95% of us were doing anyway.
  • Migration squashing. php artisan schema:dump collapses 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/finally callbacks on the whole set. Cleaner than the chained-job workarounds we’ve been writing.
  • Improved rate limiting, maintenance mode with a secret bypass 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:

  1. “I just wanted auth views.” The old laravel/ui gave you simple Blade + Bootstrap scaffolding you could read in an afternoon. Jetstream hands you a full application architecture with technology choices already made.
  2. “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.
  3. 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.