No app/Http/Kernel.php. That is the first thing you notice in the Laravel 11 preview, and the first thing every comment thread asks: where did my middleware go.

The skeleton is the loudest change this quarter, louder than any feature. An app/ directory that is almost empty, no folder of middleware stubs, a pile of service providers collapsed into one, config files trimmed.

The middleware did not go anywhere. It moved into the framework. The mechanism exists exactly as before, only the file does not, and bootstrap/app.php gets a small fluent API to reconfigure the stack when you actually need to.

Absent file is not absent mechanism. The old skeleton printed framework internals into your repository, and everyone treated the printout as their code. It was not their code. Most projects never edit the HTTP kernel. They carried it through every upgrade anyway, diffed it, resolved conflicts in it.

So is less generated code less complexity. No. The complexity was always in the framework, the skeleton only made a photocopy. What the diet buys is an honest boundary. What sits in app/ is yours, you wrote it, you meant it. What is not there has a default. Defaults end debates.

There is a real cost, and it is discoverability. A junior could open Kernel.php and read the middleware stack top to bottom, in order. Now that list lives in a class inside vendor/. You will explain it once per new hire. Cheap, but not zero.

My prediction: within a month of release someone publishes a package that generates all the old files back. Some people are only calm when they can see the machinery. I understand them. I have opened vendor/ to read that class three times already.