Laravel hosting — 7 options compared

Shared hosting will run Laravel, and for a brochure site that is fine. The moment there is a queue, a scheduler and a deploy pipeline, the question changes: you need somewhere that models long-running workers and cron, not just a directory with PHP files in it.

Last updated 3 August 2026

Laravel is the one framework in this series with a large, healthy shared-hosting tradition. A cPanel account with a `public` symlink genuinely works, costs almost nothing, and for a small brochure site there is no honest argument against it.

It stops working at a predictable point: when the application acquires a queue. Workers are long-running processes that must be restarted on every deploy, the scheduler needs a cron entry firing every minute, and configuration caches must be rebuilt as part of a build rather than by hand over FTP. That is the moment shared hosting turns from cheap into expensive, measured in your evenings.

Laravel also has a first-party platform now. Laravel Cloud is built by the framework team, knows what a queue worker and a scheduler are without being told, and starts at $5/month. On this page it gets the same treatment as everyone else — including where it costs you flexibility.

At a glance

Sorted by entry price. Every provider here can build and run a Laravel service; the columns are what separates them.
ProviderFrom /moFree tierManaged DBPersistent diskDeploy from
Fly.io~$2Postgres (unmanaged app)Dockerfile, buildpack
Laravel Cloud$5first month freeServerless Postgresno (use buckets)Git
Railway$5yes ($1 credits)Git, Dockerfile, template
Render$7yes (spins down)Git, Dockerfile
Granite$9from AdvancedGit, Docker image
Koyeb$29limitedServerless PostgresGit, Dockerfile
Google Cloud Runusage-basedyes (monthly allowance)via Cloud SQLno (use GCS)Container image

Entry prices as published by each provider on 3 August 2026, sorted cheapest first. Usage, bandwidth and databases are billed on top almost everywhere — treat this column as a starting point, not a monthly bill.

PaaS, serverless or a plain VPS?

Pick the category before you pick the provider — it decides more than the logo does.

Shared hosting earns a mention here that it does not get on the other pages in this series, because for Laravel it is a real option rather than a compromise. A brochure site or a small CMS on a cPanel account is cheap and works. The line is the queue: once you need a worker running continuously and restarting on every deploy, you are fighting the hosting model rather than using it.

A managed platform is where an application with a queue belongs. What you are buying is not the ability to run PHP — that is everywhere — but workers, cron and a build step as first-class concepts, with a managed database beside them.

Serverless fits Laravel awkwardly for one structural reason: the queue worker must run continuously by definition, so it cannot scale to zero. You end up with a request-driven web tier and an always-on worker anyway, at which point much of the appeal has gone. Laravel Cloud is the exception worth noting — its sub-500ms wake makes the scale-to-zero web tier genuinely practical.

Where should Laravel run?

Brochure site or small CMS, no queue, no scheduler, rare deploys

Shared hosting

Genuinely cheap and genuinely adequate — until the first background job.

Any cPanel host

There is a queue and a scheduler, and Laravel is the whole product

Laravel Cloud

First-party: workers, cron and deploys are modelled, not improvised.

Laravel Cloud

Laravel is one service among several, and you want one project and one bill

General platform

Web, worker and scheduler from one image, beside MySQL and Valkey.

Granite · Railway · Render

For Laravel the deciding question is simply whether there is a queue — it changes the answer more than traffic or budget do.

The options

Prices as published by each provider on the date above. Check them before you commit — they move.

Fly.io

Best for
Teams comfortable running their own database who want several regions and per-second billing.
Pricing
Pay as you go. The smallest shared-cpu-1x machine with 256 MB RAM works out at roughly $2.02/month, billed per second.
  • Takes your Dockerfile, so the PHP version and extensions are entirely yours to pin.
  • Multi-region and Anycast routing are first-class.
  • Per-second billing, so stopped machines cost only storage.
  • The headline ~$2 machine has 256 MB of RAM, and the measurement below shows a modest Laravel app sitting well above that — so Fly's cheapest tier does not apply to this stack.
  • MySQL or Postgres is an app you run and back up yourself.
  • Queue workers and the scheduler are separate processes you define and manage rather than platform features you enable.
  • No free tier for new organisations since October 2024.

Laravel Cloud

Best for
Laravel applications where first-party support and knowing nothing will surprise you is worth more than portability.
Pricing
Starter is $5/month plus usage and includes $5 of credits, with the first month free. Growth is $20/month and Business $200/month, both plus usage. Compute scales to zero and wakes in under 500ms.
  • Built by the framework team: queues, scheduler, workers and the deploy pipeline are modelled directly rather than approximated.
  • Serverless Postgres, Valkey and buckets are all part of the platform, so the whole stack is in one place.
  • Compute scales to zero and wakes in under 500ms, which is unusually good for PHP and makes the cheap tiers genuinely usable.
  • Starter is $5/month with the first month free, and spending limits are built in.
  • Single-framework by design — anything else in your system needs to live somewhere else, so a mixed stack means two providers and two bills.
  • Usage-based charges sit on top of the plan fee, so the $5 is a floor rather than a forecast.
  • The newest platform here, with the shortest track record.

Railway

Best for
Getting Laravel, MySQL and Redis running together quickly.
Pricing
Hobby is $5/month including $5 of usage credits; Pro is $20/month per workspace including $20 of credits. A free plan gives $1 of monthly credits, and there is a 30-day trial.
  • Templates cover the Laravel stack including the database and Redis for queues.
  • Workers and cron are ordinary resource types, so the scheduler has a proper home.
  • A free plan and a 30-day trial for evaluation.
  • Usage-based billing on top of the base fee is hard to forecast.
  • The Pro fee is per workspace, which adds up for small teams.

Render

Best for
A predictable monthly bill with managed database, workers and cron in one account.
Pricing
Free web services are available but spin down after 15 minutes without traffic. The cheapest paid instance, Starter, is $7/month for 0.5 vCPU and 512 MB RAM.
  • Background workers and cron jobs are first-class, which covers queue:work and schedule:run cleanly.
  • Managed Postgres and Redis, plus release commands for migrations.
  • A real free tier for evaluating.
  • Free services spin down after 15 minutes idle.
  • Managed MySQL is not offered, so a Laravel app that assumes MySQL either moves to Postgres or looks elsewhere.

Granite

Best for
A Laravel app that is one part of a larger system, with the database, cache and uploads in the same project.
Pricing
Hobby is $9/month and includes $15 of monthly usage credits. Advanced is $39/month with $50 of credits, Professional $149/month with $200. Every plan has unlimited workspace seats.
  • Managed MySQL as well as Postgres — the database most Laravel applications actually assume — plus Valkey for queues and cache, all over internal DNS with no public endpoint.
  • Web app, queue worker and scheduler are three resources from one image, so the worker can never run older code than the site.
  • Cron jobs are a resource type, so schedule:run is configuration rather than a hack.
  • S3-compatible storage with a CDN for user uploads, and flat plan pricing that does not move with traffic.
  • No free tier — the cheapest way in is $9/month, against genuinely cheap shared hosting.
  • Not Laravel-specific: nothing here knows what an Artisan command is, so the deploy steps are yours to define.
  • Fewer regions than the hyperscalers, and no multi-region routing yet.

Koyeb

Best for
Low-traffic Laravel apps where paying nothing while idle matters most.
Pricing
The Pro plan is $29/month; Scale is $299/month. Serverless Postgres has a small free allowance.
  • Scale-to-zero with edge locations included.
  • Managed Postgres available on the platform.
  • The highest entry price of the managed options.
  • Scale-to-zero does not cover the queue worker, which by definition has to keep running — so the saving applies to only part of the bill.

Google Cloud Run

Best for
Stateless Laravel services with bursty traffic, for teams already in GCP.
Pricing
No monthly fee. You pay per request and per resource-second, with a monthly free allowance. Cloud SQL and networking are billed separately.
  • Scales to zero and has effectively no ceiling.
  • Takes any container image, so your PHP version and extensions are pinned by your Dockerfile.
  • No persistent disk, so anything written to storage/app has to move to a bucket before you deploy.
  • Queue workers and the scheduler do not fit the request-driven model and need separate infrastructure.
  • Database, cache and secrets are separate GCP products you assemble and bill separately.

What a Laravel app actually needs from a host

The requirements that matter for Laravel are different from the ones every generic hosting listicle repeats.
Laravel-specific criteria
Every platform here runs PHP. These are the things that decide whether it runs Laravel comfortably or whether you spend your evenings working around it.
Queue workers, and restarting them
queue:work loads your application once and keeps it in memory, which means a worker started before a deploy is still running the old code afterwards. The deploy has to end with queue:restart, and the platform has to give the worker somewhere to live as a long-running process rather than a request handler.
The scheduler is one cron entry
Laravel expects schedule:run to fire every minute and decides internally what is due. That needs a real cron facility — a platform without one leaves you running a sleep loop in a container and pretending it is the same thing.
Caches belong in the build
config:cache, route:cache, view:cache and event:cache turn interpreted configuration into compiled PHP and make a measurable difference. They must run during the build or release step, because a stale cache from the previous version is worse than no cache at all.
APP_KEY, exactly once
The application key encrypts sessions and anything you have encrypted at rest. It must be generated once and then supplied as an environment variable; regenerating it on deploy silently invalidates every existing session and makes encrypted columns unreadable.
Writable storage and uploads
Laravel needs storage/ and bootstrap/cache writable, and storage:link exposes public uploads. On a container platform the local disk resets on deploy, so user uploads belong in object storage through the s3 filesystem driver rather than behind a symlink.
Memory: workers, not requests
PHP-FPM keeps a pool of child processes and each holds the framework in memory; the queue worker is another long-lived process doing the same. Usage therefore tracks how many processes you run rather than how many requests arrive — which is why the smallest tiers on most platforms do not fit a real Laravel app, however modest it looks.
TrustProxies behind the load balancer
Every platform here terminates TLS in front of your container, so Laravel sees plain HTTP and generates http:// URLs, breaking assets and redirects in ways that look like a TLS problem. Trusting the proxy headers is a two-line fix that costs an afternoon to find.
$ docker images laravel-app
REPOSITORY    TAG      SIZE
laravel-app   naive    1.01GB
laravel-app   slim     190MB
The same Laravel application built two ways: once on the full php image with Composer and the build tooling left in place, once multi-stage with dev dependencies stripped, the autoloader optimised and the result copied onto an Alpine base. Five times smaller, and at 190 MB the lightest of the interpreted stacks in this series — PHP carries less runtime than Python or Ruby.
Memory usage graph of a Laravel service on Granite over 24 hours, moving between roughly 270 and 355 MiB
A Laravel service in production over 24 hours. It settles around 270 MiB overnight and climbs into the mid-300s through the working day; the sharp dips are deploys, where the processes restart and memory builds back up. The practical conclusion is blunt: a 256 MB instance will not hold this application, and a 512 MB tier is comfortable rather than generous. Size by process count, then check the graph.

So which should you pick?

A brochure site with no queue. Shared hosting, honestly. Nothing on this page will serve you better for the money until the application grows a background job.

Laravel is the whole product and you want first-party everything. Laravel Cloud. Queues, scheduler and deploys are modelled by the people who wrote the framework, and the sub-500ms wake makes scale-to-zero practical. Start at $5/month and set a spending limit immediately, because usage sits on top.

Laravel is one service among several. This is where we would argue for Granite. Managed MySQL — the database most Laravel apps actually assume — sits beside the app with Valkey for queues and cache, all over internal DNS with no public endpoint. The web app, the queue worker and the scheduler are three resources from a single image, so the worker cannot drift onto older code, and cron is a resource type rather than a workaround. Flat plans from $9/month with $15 of usage credits.

Multiple regions and you run your own database anyway. Fly.io.

Running other stacks beside it? The Go, Django and Rails comparisons cover the same platforms with different conclusions, and the app platform page covers workers and cron jobs in detail.

Laravel hosting questions

More questions? Email us at support@granite.so

Be first in line for updates
and special pricing
Get early access to new features and exclusive discounts delivered straight to your inbox