Service Laravel

Production Laravel that scales beyond MVP.

Eloquent done right, queues from day one, tested with Pest, deployed through Forge or Cloudflare. Built on the same patterns we ship in WP Vanguard, our Laravel SaaS in production.

WP Vanguard runs on Laravel in production
app.wpvanguard.com
ScanSite.php php
    
      
          
          // app/Jobs/ScanSite.php
        
          
          namespace App\Jobs;
        
          
           
        
          
          use App\Models\Site;
        
          
          use App\Services\Scanner;
        
          
          use Illuminate\Bus\Queueable;
        
          
          use Illuminate\Queue\SerializesModels;
        
          
          use Illuminate\Contracts\Queue\ShouldQueue;
        
          
           
        
          
          class ScanSite implements ShouldQueue
        
          
          {
        
          
              use Queueable, SerializesModels;
        
          
           
        
          
              public int $tries = 3;
        
          
              public int $timeout = 600;
        
          
           
        
          
              public function __construct(public Site $site) {}
        
          
           
        
          
              public function handle(Scanner $scanner): void
        
          
              {
        
          
                  $report = $scanner->run($this->site);
        
          
                  $this->site->reports()->create($report);
        
          
              }
        
          
          }
        
    
  

Why Laravel

The framework you ship if you want the product to last.

Laravel hits the right balance between productivity and longevity. The patterns hold at MVP and they still hold when the database has ten million rows. Eloquent stays readable. Queues stay manageable. Tests stay fast. The team that wrote the first feature can still extend the codebase three years in.

What kills most Laravel apps is not Laravel. It is shortcuts taken in week one that compound for two years before anyone notices. We have rewritten enough of those apps to know which shortcuts to skip and which patterns are worth the extra day to set up properly.

What we build

Laravel that does not need a rewrite in eighteen months.

Schema designed for the load you will hit, not the load you have now. Queues from the first feature. Tests where they matter. Admin in Filament so you stop hand rolling CRUD. Deployed properly so releases stop being scary.

01

Eloquent done right

Models with explicit relationships, query scopes, and casts. No N+1 queries shipped, no eager loading guessed at. We write the schema, the migrations, and the model layer to last beyond the first growth phase.

Database stays fast at 10x current load.

02

Queues, Horizon, Pulse

Heavy work runs in queue jobs from day one. Horizon manages the workers, Pulse watches the application. Scheduled tasks live in the scheduler, not in cron entries we will lose track of.

Background work scales without rewrites.

03

Filament for admin, Inertia for app

Admin dashboards in Filament because rebuilding CRUD wastes weeks. User-facing app in Inertia with Vue or React, or pure API for a separate frontend. We pick the right layer for each surface.

Admin ships in days, not months.

04

Tested with Pest, deployed via Forge

Pest tests cover the critical paths from the first commit. CI runs on push, deploys go through Forge or directly to Cloudflare Workers if the workload fits. No surprise production breaks.

Every release goes out with green tests.

05

Stripe, multi tenant, role aware

Subscription billing through Cashier. Multi tenant isolation through teams or per tenant databases. Roles and permissions through Spatie. Three patterns we have shipped to production.

SaaS plumbing solved on week one.

06

We dogfood Laravel

WP Vanguard runs on Laravel. The customer dashboard, the scanner orchestrator, the Stripe billing layer, all Laravel. We ship the same patterns we sell.

Production Laravel proof you can audit.

100%

of our Laravel projects ship with Pest tests on critical paths

Tested before deploy. Green CI gate before any release.

The data layer

Models that read like the domain, not like the database.

Eloquent done right means relationships are explicit, scopes hide query complexity, and casts handle types properly. No raw queries scattered across controllers. No N+1 surprises in production.

app/Models/Site.php php
    
      
          
          // app/Models/Site.php
        
          
          namespace App\Models;
        
          
           
        
          
          use Illuminate\Database\Eloquent\Model;
        
          
          use Illuminate\Database\Eloquent\Relations\HasMany;
        
          
          use Illuminate\Database\Eloquent\SoftDeletes;
        
          
           
        
          
          class Site extends Model
        
          
          {
        
          
              use SoftDeletes;
        
          
           
        
          
              protected $fillable = ['url', 'team_id', 'plan'];
        
          
           
        
          
              protected $casts = [
        
          
                  'last_scanned_at' => 'datetime',
        
          
                  'features' => 'array',
        
          
              ];
        
          
           
        
          
              public function reports(): HasMany
        
          
              {
        
          
                  return $this->hasMany(ScanReport::class)
        
          
                      ->latest('started_at');
        
          
              }
        
          
           
        
          
              public function scopeNeedsScan($query)
        
          
              {
        
          
                  return $query->where('last_scanned_at', '<', now()->subDay());
        
          
              }
        
          
          }
        
    
  

Process

How a Laravel project runs.

01

Discovery

One to two weeks. Domain modeling, schema design, queue map, integrations list, deploy target, cost ceiling. Output is a fixed price quote.

No scope creep mid build.

02

Build

Six to twelve weeks for a full SaaS, less for a focused module. Migrations first, models second, jobs and queues third, UI last. Tests written alongside.

Working software at every milestone.

03

Deploy and observe

Forge or Vapor or Cloudflare. Pulse and Horizon set up before launch. Sentry or Bugsnag for errors. We watch the first thirty days closely.

Production starts stable.

Common questions

Frequently asked

  1. Do you take MVP rewrites or only greenfield Laravel?

    Both. Most Laravel work we get is rewriting an MVP that hit its scaling ceiling. We move the database first, port the routes one by one, and keep the existing app live behind a feature flag until the new one is faster.

  2. Inertia or API-first?

    Inertia if the frontend and backend ship from the same team. API-first if a separate frontend team owns the UI or if you need a mobile app sharing the same backend. Both patterns are equally well supported and we have production examples of each.

  3. Where do you deploy Laravel?

    Default is Laravel Forge on a managed VPS (DigitalOcean, Hetzner, AWS). For lighter API-only workloads we deploy to Cloudflare Workers or Vapor on AWS Lambda. Choice is driven by latency, queues, and cost, not by trend.

  4. Do you write tests?

    Yes. Pest tests on the critical paths from the first commit. We do not chase 100% coverage. We cover the paths that, if broken, would cost the business money or trust.

  5. Can you integrate Laravel with our existing WordPress?

    Yes. We run Laravel as a separate application that talks to WordPress through REST or shared database access. Common pattern: WordPress for content, Laravel for the actual product surface (dashboards, billing, integrations).

  6. What does it cost?

    Laravel projects are scope-dependent for an MVP rewrite or focused module. Full SaaS builds are scope-dependent. Retainers for ongoing Laravel work are scoped per project. Discovery call is free.

Ready to ship Laravel that lasts?

Tell us what you want to build.

Discovery call is free. Fixed-price quote within 48 hours. Projects are scope-dependent.