Skip to content

Laravel hosting that speaks artisan.

Push to GitHub. We read composer.json, install your packages, build your front end, run your migrations before going live, and keep your queue workers and scheduler running.

  • PHP8.0 → 8.5
  • DeploysWithout downtime
  • ProcessesWeb, workers, scheduler
  • Priced byWhat it uses

We read your code, so you don't write a build script.

Everything we need is already in your repository. Every build shows what we found and what we ran, line by line.

FileWhat we do with it
composer.jsonLaravel, and the PHP version it asks for. We run composer install without your dev packages.
package.jsonYour front end: if it has a build script, like Vite's, we install its packages and run it.
artisanWith laravel/framework, it tells us this is Laravel: storage is kept, and the Laravel commands appear on the app's page.
storage/Kept between deploys, with your uploads and logs. bootstrap/cache is writable and fresh at each start.
tanzahost.jsonOptional: the PHP version, extensions, system packages and commands, if you need them.

Workers and scheduled tasks, with nothing to babysit.

Add a worker for your queue, such as php artisan queue:work, and a task for Laravel's scheduler, php artisan schedule:run every minute. Each runs from your app's live version, with its variables, and its logs show live.

  • Up to 5 workers per app, each with its own command, and limits of its own if you like.
  • Up to 10 scheduled tasks, as often as every minute, in UTC, with the last 20 runs and their last lines kept.
  • A task still running at its next time is skipped, and one running for over an hour is stopped.
  • reading today's prices

Migrations run before visitors arrive.

Tick “Run migrations on each deploy”, and php artisan migrate --force runs once, in its own sandbox, after the build and before the switch.

  • If it fails, nothing changes

    The deploy stops, and the version before it keeps serving your visitors.

  • Checked before the switch

    The new version must answer its health address, like Laravel's /up, before it gets a single visitor.

  • Watched for five minutes

    If the new version stops by itself within five minutes, visitors go back to the previous one, and we tell you.

  • Roll back in one click

    The build before the live one, deployed again without downtime.

Uploads that survive every deploy.

Your code is fresh and read-only on every deploy, so a hacked app can't change itself. Laravel's storage folder is the exception: it's kept, with your uploads and logs.

  • Laravel commands on the app's page

    Run migrations, Storage link, Clear cache, and Maintenance on and off. Each runs once with your live version, its variables and its storage, and its output streams as it happens.

  • Your storage, in the browser

    Browse, upload and edit the files in storage with the file manager. Your code can be read there, never changed.

  • A terminal inside your app

    Run any artisan command in the browser, inside your app's own sandbox.

Every PHP from 8.0 to 8.5.

We use the newest version that meets what composer.json asks for, or the one you pick in the app's settings. Change it any time, and the next build uses it. Tick the PHP extensions your app needs, and the next build includes them.

  • PHP 8.5Supported
  • PHP 8.4Recommended
  • PHP 8.3Supported
  • PHP 8.2Supported
  • PHP 8.1End of life
  • PHP 8.0End of life

End-of-life versions show a warning and the date they're removed: 31 December 2027 for PHP 8.0 and 8.1. PHP 7.4 is kept only for sites moved from cPanel.

A Laravel shop, priced in the open.

Say duka's web app and its queue worker together hold 0.85 GB of memory and use about a third of a processor, awake all month. You pay for that use, hour by hour, from your wallet. The limits you set cost nothing by themselves.

reading today's prices

Reading the prices
Do I need to change my code?
Usually not. Commit composer.lock, keep .env out of your repository, and set your settings as variables instead. With MySQL or MariaDB, add ext-pdo_mysql to your composer.json's require, or tick pdo_mysql in the app's PHP extensions: our PHP doesn't have it until you ask. Behind our front door, tell Laravel to trust the proxy, so its links use https.
Where does my .env go?
Into variables, stored encrypted and given to your app when it starts. Paste your .env file to add them all at once. A database you attach fills in its own connection details, and APP_URL follows your app's address by itself.
How do I run artisan commands?
In the terminal in your browser, inside your app's own sandbox, or with the Laravel commands for migrations, the storage link, clearing caches and maintenance mode.
Where do uploaded files go?
Into storage, which is kept between deploys on your app's own disk. It grows as you need, with no fixed limit, and you pay for the GB it holds.