Slow-cooked thoughts on Laravel, software craft, and the quiet, unglamorous parts of shipping software for a living. New posts roughly once a month.
Most of us could explain what the container does in a sentence. Fewer of us could explain how Route::get hands a controller a Request and a route-bound model in one call. Let's open the file. It is roughly 1,500 lines, and once you can name its four jobs, the magic stops being magic.
Most of us could explain what the container does in a sentence. Fewer of us could explain how Route::get hands a controller a Request and a route-bound model in one call. Let's open the file. It is roughly 1,500 lines, and once you can name its four jobs, the magic stops being magic.
I have shipped ten-plus production projects on Postgres in the last five years. One legacy MySQL client aside, every new database decision has been the same. citext, jsonb, tsvector, range types, TimescaleDB at the core, Redis at the edges. That is the whole stack.
useHttp lands the form-ergonomics-for-API-calls hook every Inertia + React app eventually grows. Axios is gone. The Vite plugin replaces three config files. SSR runs in dev without a side process. v3 is a cleanup release with one real addition.
Most senior Laravel developers can't name the stages a request passes through before reaching their controller. That's the framework doing its job, but it's also why we debug by guessing. Let's trace one request, end to end, on Laravel 13.