Supported languages
JavaScript
Python
Java
Rust
Elixir
PHP
Go
C#
Ruby
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.
Versions
Every runtime ships two update channels, selectable through theVERSION 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.
| 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 |
How a deploy works
From upload to a live process, every deploy runs through the same deterministic pipeline:Language detection
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.Dependency resolution
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.Provisioning
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.
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:Node.js 26 + build tooling
Every image bundles Node.js 26 alongside the primary language. JS-based build tools, asset pipelines and utilities are always available, whatever your stack.
ffmpeg & Chromium
Media processing (ffmpeg) and a headless browser (Chromium) are preinstalled — ready for media bots, web scraping, and PDF or screenshot generation without extra setup.
Unprivileged by default
Applications run as a non-root user inside an isolated container. A compromised dependency stays contained — it has no privileged access to the host.
Static sites, no runtime
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.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
Configuration file
Master
MAIN, START, RUNTIME, VERSION and MEMORY — the fields that control your runtime.Language guides
Step-by-step setup for Node.js, Python, Go, Rust, Java and more.

