For a long time my mental model was binary: simple app gets Blade, anything interactive gets a Laravel API and a separate React project. It worked. It also meant every small change - a new route, a renamed field, a tweaked request body - had to be made in two places, in two repos, deployed twice.
The tax nobody talks about
The hidden cost isn't the initial setup. It's the ongoing sync. You rename a form field and suddenly you're context-switching between codebases, updating types, bumping API versions, and praying you didn't miss a consumer. For a solo dev or small team, that overhead is real money and real focus lost.
What Inertia actually does
Inertia sits between Laravel and React and makes them act like one app. Laravel handles routing, auth, and data - exactly as it always did. React handles the UI. No REST endpoints, no separate deployment, no token management. You pass props from a controller to a React component like it's nothing, because it is nothing.
Both Galaxy Community and RavenRP run on this stack. Complex dashboards, auth flows, admin panels.
When I'd skip it
If the frontend is going to grow into its own product - its own team, its own release cycle, its own design system - then a proper API and a BFF layer makes more sense. Inertia shines when the backend and frontend are genuinely one thing. When they're not, don't pretend they are.
