> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Runtimes

> How Square Cloud builds and runs your code: language detection, dependency resolution, isolated containers and the tooling bundled into every runtime image.

A **runtime** on Square Cloud is the complete, isolated environment your application runs inside: the language interpreter or virtual machine, the system libraries it links against, the tooling it can shell out to, and the security boundary that keeps it separated from every other application on the host.

You never build or maintain that environment. You ship your source code and a small [configuration file](/en/getting-started/config-file); Square Cloud detects the language, resolves your dependencies, provisions an isolated container and runs it. The same pipeline powers Discord/WhatsApp/Telegram bots, websites and APIs, background workers and long-running services, on the same fast, hardened infrastructure.

## Supported languages

<CardGroup cols={3}>
  <Card title="JavaScript" icon="node-js" href="../articles/getting-started-with-nodejs" />

  <Card title="Python" icon="python" href="../articles/getting-started-with-python" />

  <Card title="Java" icon="java" href="../articles/getting-started-with-java" />

  <Card title="Rust" icon="rust" href="../articles/getting-started-with-rust" />

  <Card title="Elixir" icon="droplet" href="../articles/getting-started-with-elixir" />

  <Card title="PHP" icon="php" href="../articles/getting-started-with-php" />

  <Card title="Go" icon="golang" href="../articles/getting-started-with-go" />

  <Card title="C#" icon="c" href="../articles/getting-started-with-csharp" />

  <Card title="Ruby" icon="gem" href="../articles/getting-started-with-ruby" />
</CardGroup>

<Info>
  Beyond the languages above, most other stacks and libraries run out of the box. The runtime images are built to be permissive: if your language installs on Linux, it very likely runs on Square Cloud.
</Info>

## Versions

Every runtime ships two update channels, selectable through the `VERSION` field in your configuration file:

* **`recommended`** — the version we harden and run in production for the majority of applications. Choose it unless you have a specific reason not to.
* **`latest`** — the newest release, for teams that need a just-shipped language feature.

You can also pin an exact version for full reproducibility across deploys.

| Language           | `recommended` | `latest` |
| ------------------ | ------------- | -------- |
| Node.js \[JS & TS] | 24.15.0       | 26.1.0   |
| Python             | 3.13.13       | 3.14.5   |
| Java               | JDK 25        | JDK 25   |
| Elixir             | 1.19.5        | 1.19.5   |
| Rust               | 1.95.0        | 1.95.0   |
| Ruby               | 4.0.4         | 4.0.4    |
| PHP                | 8.5.6         | 8.5.6    |
| Go                 | 1.26.3        | 1.26.3   |
| .NET/C#            | 10.0.8        | 10.0.8   |

<Tip>Pinning `recommended` gives you automatic, tested patch updates without surprise breaking changes. See the [configuration file](/en/getting-started/config-file) reference for the `RUNTIME` and `VERSION` fields.</Tip>

## How a deploy works

From upload to a live process, every deploy runs through the same deterministic pipeline:

<Steps>
  <Step title="Language detection" icon="magnifying-glass">
    Square Cloud inspects the files in your upload and identifies the stack from the signals that already exist in your project — a `package.json` for Node.js, a `requirements.txt` or `pyproject.toml` for Python, a `go.mod` for Go, a `Gemfile` for Ruby, and so on. You can override detection explicitly with the `RUNTIME` field.
  </Step>

  <Step title="Dependency resolution" icon="cube">
    Your dependency manifest is installed **server-side**, inside the build environment. You never ship `node_modules`, a virtualenv or compiled artifacts inside the `.zip` — the platform resolves and installs them for you, keeping uploads small and builds reproducible.
  </Step>

  <Step title="Provisioning" icon="server">
    An isolated container is created with the CPU and memory declared in your configuration file. Resources are enforced at the kernel level, so one application can never starve another on the same host.
  </Step>

  <Step title="Start" icon="play">
    The `MAIN` field points at your entry file and the platform launches it with the correct interpreter. Need a build step, a static server or a custom command? Set `START` and it runs verbatim.
  </Step>
</Steps>

## Inside every runtime image

Each image is layered on a common, security-audited base, so the environment is consistent no matter which language you deploy:

<CardGroup cols={2}>
  <Card title="Node.js 26 + build tooling" icon="node-js">
    Every image bundles Node.js 26 alongside the primary language. JS-based build tools, asset pipelines and utilities are always available, whatever your stack.
  </Card>

  <Card title="ffmpeg & Chromium" icon="film">
    Media processing (ffmpeg) and a headless browser (Chromium) are preinstalled — ready for media bots, web scraping, and PDF or screenshot generation without extra setup.
  </Card>

  <Card title="Unprivileged by default" icon="shield-halved">
    Applications run as a non-root user inside an isolated container. A compromised dependency stays contained — it has no privileged access to the host.
  </Card>

  <Card title="Static sites, no runtime" icon="file-code">
    No interpreter needed? Set `RUNTIME=static` to serve a plain HTML/CSS/JS site directly, with the same CDN and TLS as any other application.
  </Card>
</CardGroup>

## Isolation and security

Every application is a fully isolated container with kernel-enforced CPU and memory limits — never a shared process. Running unprivileged means an application cannot reach the host or its neighbors, and resource caps guarantee that a spike in one project has no effect on the performance of another. This is the same model that lets Square Cloud host tens of thousands of workloads on shared clusters without them interfering with each other.

## Next steps

<CardGroup cols={2}>
  <Card title="Configuration file" icon="gear" href="/en/getting-started/config-file">
    Master `MAIN`, `START`, `RUNTIME`, `VERSION` and `MEMORY` — the fields that control your runtime.
  </Card>

  <Card title="Language guides" icon="graduation-cap" href="/en/articles/getting-started-with-nodejs">
    Step-by-step setup for Node.js, Python, Go, Rust, Java and more.
  </Card>
</CardGroup>
