Laravel gives you routing, an ORM, authentication, queues, and a dozen other things out of the box — but that’s real overhead for a project that doesn’t need most of it. Knowing when to reach for a framework (and when not to) is a genuinely useful judgment call.
When Plain PHP Is the Right Call
- A small internal tool or admin script with a handful of pages
- A single-purpose API with 2-3 endpoints
- Learning projects, where understanding the underlying mechanics matters more than shipping speed
When Laravel (or Symfony) Pays for Itself
- Any application with authentication, authorization, and multiple user roles
- Projects that will grow — a team, a roadmap, features you haven’t scoped yet
- Anything needing background jobs, email, file storage abstractions — reinventing these is real, ongoing cost
The mistake in both directions is common: hand-rolling routing, an ORM, and auth for a growing application (reinventing a worse Laravel), or pulling in a full framework for a five-page brochure site (fighting the framework’s assumptions the whole way).