Overview
Laravel Cloud supports PHP for Laravel and Symfony applications, JavaScript (Node.js, Bun, or Deno) for Next.js, Nuxt, TanStack Start, Express, and Hono applications, Go for Go applications, Python for Django, FastAPI, Flask, and other Python applications, and Ruby for Rails and other Ruby applications. Each runtime determines which versions, extensions, and platform features are available to your application.PHP
The PHP runtime is used by Laravel, Symfony, and other PHP applications. Supported versions: PHP 8.2, 8.3, 8.4, and 8.5. PHP 8.5 is the default for new environments. To select your PHP version, open your environment’s General Settings page and choose the version under the Runtime section. A re-deployment is required for the change to take effect.PHP 8.5 is generally available, but the
pdo_sqlsrv extension is temporarily unavailable until the upstream project adds 8.5 support. Use PHP 8.2, 8.3, or 8.4 if you need that extension today.Node.js, Bun, and Deno
Next.js, Nuxt, TanStack Start, Express, and Hono applications can run on the Node.js, Bun, or Deno runtime. Laravel Cloud infers which one to use by analyzing the configuration files present in your repository:
Supported versions:
The Node.js version is selectable: open your environment’s General Settings page and choose the version under the Runtime section. A re-deployment is required for the change to take effect. Bun and Deno applications run on a fixed version and do not offer version selection.
Go
The Go runtime is used by Go applications. Laravel Cloud detects a Go application from ago.mod file at the root of your repository; there’s no separate framework detection, since Go applications are built and run as a single compiled binary.
Supported versions: Go 1.24, 1.25, and 1.26. Go 1.26 is the default for new environments.
Cloud reads the go directive in go.mod at each deployment commit and uses the lowest supported version that satisfies this minimum:
Go versions are controlled by your repository. If no supported version satisfies the
go directive, the deployment fails before building. When no version is declared, Cloud uses Go 1.26.Python
The Python runtime is used by Django, FastAPI, Flask, and other Python applications. Laravel Cloud detects a Python application from apyproject.toml, requirements.txt, Pipfile, or setup.py file, and further detects Django, FastAPI, or Flask when one of those packages appears in your dependencies. Applications that don’t use a recognized framework are still supported as generic Python applications.
Supported versions: Python 3.10, 3.11, 3.12, 3.13, and 3.14. Python 3.12 is the default for new environments.
Cloud reads your Python version at each deployment commit. A .python-version file pins the major and minor version. When that file does not declare a version, Cloud uses the lowest supported version satisfying the requires-python constraint in pyproject.toml:
A repository declaration takes precedence over the environment’s version setting. If you do not declare a version, you may select one in your environment settings; new environments default to Python 3.12. An unsupported pin or a constraint that no supported version satisfies causes the deployment to fail before building.
Ruby
The Ruby runtime supports Ruby on Rails and other Ruby applications. Laravel Cloud detects Ruby from aGemfile in your application directory and recognizes Rails from its application configuration and framework files.
Supported versions: Ruby 3.2, 3.3, 3.4, and 4.0. Ruby 3.4 is the default for new environments.
Laravel Cloud checks version declarations in this order:
.ruby-version- The
RUBY VERSIONsection ofGemfile.lock - The
rubydeclaration inGemfile .tool-versionsmise.toml
.ruby-version file may contain:
Gemfile version constraint selects the lowest supported release line that satisfies it. Laravel Cloud reads the declaration from each deployment’s commit, and an unsupported declaration stops the deployment before building.
When no version is declared, you may choose a Ruby version in your environment’s General Settings. Keep your declarations consistent with Bundler’s Ruby requirements. See the Ruby and Rails deploy guide for dependencies and production configuration.
Feature availability
For Rails job backends such as Solid Queue, Sidekiq, and GoodJob, use custom background processes. Rails managed queues require access enabled for your organization. Rails recurring tasks use your job backend’s scheduler rather than Laravel Cloud’s Laravel or Symfony scheduler controls.

