Architecture · Decisions

WordPress vs Laravel: when to pick which

"WordPress or Laravel?" is the wrong opening question. Both are PHP. Both can ship the same product. The right question is who is editing content, how custom the data model is, and where the project will hurt three years from now. Here is the framework I use when a client asks.

WordPress vs Laravel decision framework

Why this isn't a tribal war

WordPress and Laravel both run on PHP. They both store data in MySQL. They both render HTML. The differences are not philosophical — they are about what is already built for you versus what you build yourself. WordPress is a finished product that you extend. Laravel is a framework that you assemble into a product.

Holy wars between the two camps usually come down to people defending whichever one they know best. As a senior developer, the more honest answer is "it depends, and here is on what". So let's get to that.

The three questions that decide it

Skip the feature lists. These three questions get you 80 % of the way to the right call:

  1. Who edits the content, and how often? If non-technical people will publish, edit and reorganise content multiple times a week, you need a CMS. WordPress's editor, media library, role system and revision history would take six months to recreate in Laravel — and you'd build them worse.
  2. How custom is the data model? Posts and pages with custom fields are WordPress's home turf. A multi-tenant SaaS with 30 entities, complex permissions, business rules that change weekly and a public REST API is Laravel's home turf. The further you are from "documents" and the closer to "transactions and workflows", the more Laravel earns its keep.
  3. Who is the user, and what is the UI? Are users mostly reading, occasionally filling a form? WordPress. Are users spending hours per day in a bespoke dashboard with real-time updates and complex interactions? Laravel (often paired with a JS frontend).

Three "WordPress" answers? Use WordPress. Three "Laravel" answers? Use Laravel. Mixed? Read on.

When WordPress is the right answer

Use WordPress when most of the following are true:

  • The project is content-heavy: a marketing site, a blog, a publication, a portfolio, a documentation site, a knowledge base.
  • Non-technical editors must be self-sufficient — adding pages, tweaking copy, uploading media without a developer.
  • You need a working site in weeks, not months, and the budget reflects that.
  • You can find an existing plugin that covers a non-trivial feature (forms, SEO, e-commerce via WooCommerce, membership, LMS).
  • You want SEO and performance defaults you don't have to think about for the first version.

The leverage of WordPress is the ecosystem. A solid theme plus three or four well-maintained plugins gets you to a respectable product faster than any framework can. The trade-off is that you live inside someone else's conventions — which is fine, until it isn't (more on that below).

When Laravel is the right answer

Use Laravel when most of the following are true:

  • The product is fundamentally an application, not a website. Users do things; they don't just read.
  • The data model is bespoke. You have entities like "subscription", "invoice", "audit log", "team", "role", "policy", "webhook". They have non-trivial relationships and business rules that will keep evolving.
  • You need a real REST or GraphQL API as a first-class deliverable, not as an afterthought.
  • The team will grow. Multiple developers will work on this for years. They need a framework with explicit conventions, dependency injection, queues, jobs, scheduled tasks, migrations, and a test suite that can run thousands of tests in seconds.
  • You want a modern PHP developer experience — typed code, clean DI, a CLI that scaffolds, an HTTP layer that doesn't surprise you.

Laravel's leverage is its conventions. Once a team is fluent, every project looks the same: routes, controllers, form requests, services, jobs, tests. New hires are productive in days because they have written this shape of code before. WordPress doesn't have that shape — every WordPress project is a slightly different snowflake of plugins and conventions chosen by whoever started it.

When you're tempted to fight WordPress, stop

The single most expensive mistake I see is choosing WordPress for a SaaS-shaped product because "we already have a WordPress site". You can build almost anything in WordPress if you try hard enough. The question is what it costs.

Warning signs that you're trying to make WordPress do Laravel's job:

  • You are creating five or more custom post types that don't represent content — they represent business entities (orders, subscriptions, leads, projects).
  • Your "settings page" has grown to twelve sub-screens and uses a JavaScript framework you've vendored into the plugin.
  • You are bypassing WP_Query with raw $wpdb queries because the post-type model isn't a fit.
  • You have written your own user roles, permissions and policies that ignore current_user_can.
  • You are scheduling business-critical jobs through wp-cron, hitting its reliability problems, and patching around them.

If two or more of these describe your project, you are paying the cost of WordPress (theme constraints, plugin conflicts, the editor experience, the wp-admin UI) without getting the benefit (out-of-the-box CMS for editors). That is when Laravel earns its keep.

The boring hybrid that often wins

A pattern that catches people by surprise: WordPress for the marketing site, Laravel for the application. Two codebases, two domains (or subdomains), shared design system. Marketing keeps publishing freely without a developer. The product team builds a real application with real conventions. Neither one is fighting its tool.

This sounds like more work, but in practice it is less. The marketing site barely needs maintenance once it's up. The application is built in the framework that fits. The only shared concern is single sign-on, which is a solved problem.

I have shipped this hybrid more times than I have shipped either tool alone for a sufficiently large project.

The real cost of picking wrong

The cost of choosing the wrong tool is rarely felt in the first three months. The first three months go fine in either. The cost shows up in year two, when:

  • You hit a feature that the framework supports natively but your tool fights, and the workaround is custom and brittle.
  • You onboard a new developer and they spend weeks learning your specific shape of customisation rather than a framework they could read on the documentation.
  • Plugin updates start breaking your customisation and you can't update because you're scared of the regression.
  • You want to expose a feature through a different channel (mobile app, partner API) and you have to factor logic out of code that wasn't designed to be reused.

The choice is not between "fast now" and "slow later". The fast one and the right one are usually the same — you just have to be honest about what shape your project actually is.

Takeaways

  • WordPress and Laravel are not rivals. They solve different problems.
  • Ask: who edits content, how custom is the data model, what is the user doing? Three answers in one direction is your call.
  • Pick WordPress for content-shaped products with non-technical editors and a fast deadline.
  • Pick Laravel for application-shaped products with bespoke entities, a growing team and a long horizon.
  • If you find yourself bending WordPress past five custom post types and a wall of plugins, you have outgrown it. That is fine — switch.
  • Hybrid is allowed. Marketing in WordPress, app in Laravel, with SSO between them, is a great answer for a serious product.

Stuck on the call between the two? Send me your project brief — a 30-minute call usually settles it, and I'll tell you honestly which way I would go.