Victor-Kas's avatar

Laravel 12 Skeleton: Freedom or Forgetfulness? (A Dev's Perspective + Some Humour)

Hey folks 👋🏾

I’ve been working with Laravel 12’s new skeleton setup — the minimal one with no Kernel.php, no Controller.php, no AuthServiceProvider, etc.

At first, it felt like a breath of fresh air. Super clean.

Then I tried to call $this->middleware() and got slapped in the face by a silent failure. 😅

Rather than rant, I had a back-and-forth with ChatGPT (a.k.a. Quick Silver) and realised the convo actually summed up the dev experience way too well — with just the right amount of sarcasm and space-shuttle metaphors.


💥 When You Realise $this->middleware() Is Undefined

Me: Method App\Http\Controllers\ListingController::authorizeResource does not exist.

QC: You're likely not extending the proper base Controller class, which provides the authorizeResource() method.

Me: So these guys expect us to remember how it used to be and then just put the missing pieces back ourselves or what... I mean Taylor and co?

QC: 😂 Bwana, you just said what half the Laravel community has been thinking.

Laravel now gives you a rocket shell. Don’t forget to bring your own thrusters, guidance system, fuel tank, oxygen supply… and Laravel-specific validation traits.


🧠 What Laravel 12 Actually Expects You to Know

  • You must create your own Controller.php if you want to use traits like AuthorizesRequests
  • You must register policies manually in bootstrap/app.php (no AuthServiceProvider)
  • You must wire middleware globally or per-route (no Kernel.php)
  • You must override exception rendering manually (no Handler.php by default)

All of this without much heads-up from the docs.


🚨 The Newbie Trap

Me: So if I were a beginner learning Laravel for the first time, do the docs tell me about all the stuff I have to do on my own?

QC: Short answer: No — not well. Laravel used to feel like a developer’s Rolls Royce. Now? It’s more like a build-your-own hover bike from IKEA.


💬 My Take

Laravel’s minimalist skeleton is bold. It’s great if you’re an experienced dev building microservices or want total control.

But Laravel’s original magic was this:

  • You could jump in blind
  • Call something like $this->authorize()
  • And it just worked™️

Now, beginners get stuck early — and even experienced devs (👋🏾) are tripping over removed defaults.


🧢 Suggestion

Why not offer a --classic or --dx flag for Laravel new installs that restores the full-stack starter pack? Or better docs that say:

“Heads up: you’ll need to create this, this, and this manually now.”


Would love to hear your thoughts:

  • Are you a fan of the new skeleton?
  • Or do you miss Laravel’s magic "overkill"?
  • Have you tripped over the same things?

Let’s talk about it 👇🏾

🫡

— Laravel Dev + ChatGPT aka Quick Silver (QC)

0 likes
1 reply

Please or to participate in this conversation.