Skip to main content
Frameworks

Laravel

Choose it for an application you are prepared to operate.

The proposal says Laravel will make the build fast. The unanswered question is whether the business needs a custom application, and who will run all the machinery after launch.

Laravel gives a PHP team a coherent way to handle requests, authentication, database records, background work, notifications and scheduled jobs. That is valuable when the product contains real business rules. It is excess architecture when a configured product already covers the requirement.

The decision is not whether Laravel has the feature. It usually does. The decision is whether its conventions fit the application, its operational parts are visible in the budget and the team will keep the framework current.

Laravel’s productive start comes with an operating model

A developer can create a Laravel project, add authentication and expose a useful workflow quickly. The framework’s conventions remove a lot of blank-page design. Its documentation covers validation, queues, caching, events, scheduling, database access and deployment in one recognisable system.

That productive start is earned by accepting the framework’s shape. Requests enter through Laravel, data is normally represented through Eloquent, commands and jobs carry work, and configuration influences production behaviour. A team that follows those conventions leaves a codebase another Laravel developer can read. A team that treats the framework as a folder of helpers can still produce an expensive private dialect.

We therefore review the intended application boundary before discussing packages. Which workflows belong in this product? Which records are authoritative? What runs synchronously? What continues after the customer has closed the page? Those answers tell us whether Laravel is simplifying the system or hiding one that has not been designed.

Business workflows are where Laravel earns its place

Laravel fits operational software with accounts, permissions, approvals, billing events, reports, integrations and changing rules. These products benefit from one place to express policy and from framework features that share the same conventions.

An API can also be a sound Laravel product. The important part is not calling it an API; it is defining consumers, authentication, error contracts, versioning and background side effects. A separate React or Vue interface increases that contract and deployment surface, so we only split it when the product needs the separation.

A brochure site, a modest editorial workflow or a standard online shop deserves a different starting point. WordPress or WooCommerce may deliver more of the operating product before custom code begins. Paying for Laravel to recreate mature commodity features is not automatically better engineering.

Eloquent convenience still needs database discipline

Eloquent makes common record operations readable, but an expressive relationship can issue a surprising number of queries when it is used inside a loop. Laravel documents preventing lazy loading because the N+1 problem is easy to introduce and worth catching during development.

We want representative data before approving a query-heavy screen. A list that is fast with 30 records can fail with 300,000. Query counts, indexes, pagination and memory use matter more than whether the model method looks elegant.

The database should also be chosen for the workload, not because the installer offered a default. MySQL and PostgreSQL both work well with Laravel. Reporting, search, JSON use, locking and existing operational knowledge should decide between them.

Queue workers turn features into running services

Sending email after a request is one thing. Processing payments, imports, webhooks or reports after the request has finished is an operating system inside the product. Laravel’s queue facilities provide retries, timeouts, failed-job handling, prioritisation and worker controls, but the business still needs policies for each of them.

Every important job needs an answer to four questions: can it run twice, how long may it take, what should trigger a retry, and how will somebody know it has failed? A payment webhook and a weekly export should not inherit the same settings by accident.

Workers are long-lived processes. They need a process monitor, logs, capacity and a controlled restart after a deployment. If the proposal includes queues without those items, it includes code but not the service that code depends on.

Laravel’s annual majors create a maintenance calendar

Laravel publishes major releases annually and gives each release defined bug-fix and security windows. The Laravel 13 support policy records the dates and its PHP baseline. That predictability is helpful if somebody has budgeted the work.

An application can remain on an older release while it appears healthy to customers. The debt emerges when a security window closes, a PHP upgrade becomes urgent or a package blocks a later framework jump. Small, regular upgrades are easier to test than several years of accumulated changes.

Before launch we record the framework version, PHP version, first-party services and important community packages. The owner should know the next review date. “Laravel is maintained” describes the upstream project; it does not update this installation.

A Laravel deployment has work after the files arrive

Laravel’s deployment guidance includes configuration caching and reloading long-running services such as queue workers, Reverb and Octane. Database migrations add another ordering decision when old and new application instances may overlap.

We expect an automated, repeatable deployment, a tested rollback route and a staging environment that represents the services production uses. Secrets stay outside the repository. Health checks cover more than the home page. A successful HTTP response does not prove that the scheduler is running or the default queue is moving.

For a modest application, a conventional Laravel deployment behind Nginx is often enough. Octane, extra caches and a fleet of services should follow measured demand. Infrastructure introduced to sound scalable can become the part nobody understands during an incident.

Questions to settle before approving Laravel

  • “Which requirement makes this a custom application?” Name the rules a configured product cannot carry.
  • “Will the interface and API live in one application?” Split them only for a product reason.
  • “What are the largest tables and busiest screens likely to become?” Test data access at a credible size.
  • “Which tasks need a queue, and can each task run twice safely?” Define failure and retry behaviour.
  • “Which long-running processes must deployment reload?” Include every worker in the runbook.
  • “Who owns framework, PHP and package upgrades?” Put dates and budget against that answer.
  • “How will we prove backups and rollback work?” A written command is not a recovery test.

When Laravel is a sound application foundation

Choose Laravel for a business application with meaningful server-side rules, several integrations and a PHP team willing to use its conventions. It is especially effective when requests, jobs, events and scheduled work need one understandable home.

It also suits a product expected to change. Authentication, validation, queues and database migrations are established parts of the framework, so new work can extend a maintained foundation instead of assembling a fresh set of packages for every feature.

The strongest approval includes the operating plan: production topology, queue policy, monitoring, deployment, backups and an upgrade owner. That turns framework productivity into a service the business can depend on.

When Laravel is custom software the business does not need

Do not begin with Laravel when the requirement is standard publishing, commerce or workflow that a supported product already provides. The flexibility of custom code is only valuable when the business will use and fund it.

Pause when the team wants Laravel because one developer knows it but nobody has accepted the application after that developer leaves. Conventions help a new maintainer, yet they do not replace documentation, tests and operational access.

And resist a rebuild whose evidence is limited to frustration with the current system. First identify whether the problem is product fit, neglected maintenance, poor data or a broken process. A new framework can reproduce all four behind cleaner code.

Alexander De Sousa, Founder of Digital Royalty
Developer’s verdict

Laravel is a strong application foundation when the operating work is part of the decision.

I choose Laravel for business software with enough rules, integrations and background work to benefit from its conventions. I do not sell the framework as a reason to rebuild a requirement a maintained product already covers. If queues, upgrades and deployment have no named owner, the Laravel decision is not finished.

Alexander De Sousa · Founder, Digital Royalty · LinkedIn

Decision evidence

What the business owns when Laravel becomes its application

Laravel accelerates custom development by providing a coherent backend system. The same decision creates database, worker, deployment and upgrade duties.

The Laravel commitment in six decisions

Best fit
Business applications, APIs and workflow systems with substantial server-side rules, integrations and background processing.
Customer effect
Consistent account and workflow behaviour when the domain is well modelled; incidents or stale data when jobs and integrations are poorly operated.
Adoption cost
Moderate for a capable PHP team. The larger cost is discovering, testing and supporting the custom rules the application exists to carry.
Ongoing owner
A backend team responsible for PHP and Laravel upgrades, database performance, queue workers, packages, deployments and production diagnosis.
Exit cost
Moderate to high. Data and documented business rules can travel, while models, jobs, policies and framework integrations need replacement.
Proof required
One representative workflow under realistic data, a repeatable deployment, observed queue failure and a tested restore or rollback.

Product shapes to compare before commissioning Laravel

  • A conventional Laravel application

    Right when: The browser experience, server rules and background work can share one release boundary and one accountable product team.

    Watch for: Keep domain rules out of controllers and views so the convenient monolith does not become an inseparable one.

  • Laravel API with a separate client

    Right when: Mobile clients, partner consumers or a highly interactive web application need a deliberate API contract.

    Watch for: Two applications add authentication, versioning, deployment and failure modes; separation needs to repay that cost.

  • Configured CMS or commerce platform

    Right when: Publishing, catalogue and transaction needs are mostly standard and maintained extensions can cover the genuine differences.

    Watch for: Audit extension quality and lifecycle rather than disguising extensive custom development as configuration.

  • Keep a maintained backend stack

    Right when: The organisation already has production knowledge, tests and support around a framework that meets the requirement.

    Watch for: Confirm that the capability is current and staffed, not merely present in an old repository.

Research behind this Laravel position

  • Official support policy
    Laravel 13 release and support dates

    Documents Laravel's annual major cadence, defined support windows and PHP 8.3 minimum for Laravel 13. This gives upgrade planning a concrete calendar.

  • Official migration
    Laravel 13 upgrade guide

    Records framework changes that an application and its dependencies need to assess; a major upgrade is a tested product change, not a version edit.

  • Official operations
    Laravel deployment guidance

    Covers production optimisation and reloading long-running services. Deploying files alone does not update every process serving the application.

  • Official operations
    Laravel queue documentation

    Shows the retry, timeout, failure and worker controls that need explicit policy when important work moves outside the web request.

  • Official data guidance
    Preventing Eloquent lazy loading

    Provides a development control for unintended relationship queries and supports treating query count as part of application quality.

  • Official scheduling
    Laravel task scheduling

    Requires only one cron entry but still depends on an external process being present and observed in each production environment.

  • Practitioner discussion
    Stack Overflow: restarting Laravel queue workers

    The question illustrates a recurring deployment concern around long-lived workers. The accepted operational detail should still be checked against the current Laravel documentation.

  • Community reaction
    Reddit: Laravel 13 release discussion

    Maintainers discuss upgrade timing and package readiness. It is anecdotal context for rollout planning, not a substitute for the official upgrade guide.

Get started

Tell us what you need

A few quick questions, then a straight answer from a real person — usually within a few hours.

Tell us what you're working on

Whether it's a new site, a platform, or a process that shouldn't be manual any more — we'll tell you honestly if we can help.