• Docs
  • Changelog
Sign in
Get started
    • Home
    • Your first deploy
    • Free instances
    • Platform features by plan
    • Use with coding agents
    • FAQ
    • Templates
      • Migrate from…
        • Heroku
        • Railway
    • Compute plans
    • SandboxesBeta
      • Service types
        • Which to use?
        • Static sites
        • Web services
        • Private services
        • Background workers
        • Cron jobs
        • Workflows
        • Multi-service architectures
      • Data storage
        • Render Postgres
        • Render Key Value (Redis®-compatible)
        • Persistent disks
    • How deploys work
    • Supported languages
    • Git providers (GitHub, etc.)
    • Build pipeline
    • Deploy hooks
    • Monorepo support
    • Troubleshooting deploys
      • Previewing changes
        • Single-service previews
        • Preview environments (multi-service)
      • Docker deploys
        • Overview
        • Deploy a registered image
        • Using secrets
      • Runtime
        • Native runtimes
        • Environment variables & secrets
        • Default environment variables
    • Intro to sandboxes
    • Limits
      • How to…
        • Create & configure sandboxes
        • Execute commands
        • Manage files
        • Manage snapshots
      • Use with…
        • Claude Managed Agents
        • Cursor Cloud Agents
        • OpenAI Agents API
      • SDK/CLI reference
        • TypeScript SDK
        • Python SDK
        • CLI commands
    • Intro to workflows
    • Tutorial
    • Limits & pricing
      • How to…
        • Define tasks
        • Define flowsNew
        • Trigger runs
        • Develop locally
      • SDK reference
        • TypeScript SDK
        • Python SDK
      • Example workflows
        • TypeScript examples
        • Python examples
    • Overview
    • Create & connect
    • Database credentials
    • Extensions
    • Version upgrades
    • Logical replication
    • Legacy instance types
      • Database recovery
        • Recovery & backups
        • High availability
      • Database performance
        • Read replicas
        • Connection pooling
        • Admin apps
        • Repacking tables
        • Troubleshooting performance
    • Regions
    • Inbound IP rules
    • Edge caching
    • WebSockets
    • TLS certificates
      • Custom domains
        • Overview
        • Cloudflare
        • Namecheap
        • Other DNS providers
      • Internal traffic
        • Private network
        • Private links
      • Outbound traffic
        • Default IP ranges
        • Dedicated IP addresses
        • Outbound bandwidth
        • Handling network changes
      • Static site config
        • Custom response headers
        • Redirects & rewrites
    • The Render Dashboard
    • SSH / Shell access
    • Projects & environments
      • Service actions
        • Scaling
        • Rollbacks
        • Maintenance mode
        • One-off jobs
      • Infrastructure as code
        • Blueprints overview
        • render.yaml reference
        • Terraform provider
    • In-dashboard metrics
    • Health checks
    • Uptime best practices
      • Logging
        • In-dashboard logs
        • Log streams (syslog/HTTPS)
      • OpenTelemetry (OTel) metrics
        • Provider setup
        • Metrics reference
      • Notifications
        • Webhooks
        • Email / Slack
    • MCP Server
      • Render CLI
        • Overview
        • Command reference
      • REST API
        • Overview
        • API reference
      • Third-party connections
        • OIDC support
        • Datadog
    • Workspaces, members, & roles
    • Login settings
    • Audit logs
      • Organizations
        • Overview
        • SAML SSO
    • DDoS protection
    • Platform maintenance
      • Compliance
        • Overview
        • HIPAA (US health data)
        • HIPAA best practices
        • Shared responsibility model
        • Pentest policy
    • Heroku vs Render
    • Vercel vs Render

Supported Languages

Render natively supports Node.js / Bun, Python, Ruby, Go, Rust, and Elixir. While creating a service, you link your Git provider repo, choose the runtime for your language, and specify a branch to deploy.

To run virtually any language (PHP, .NET, Java/Kotlin/Scala, etc.), you can deploy a Docker image.

Set your language version

By default, Render uses a recent, actively supported version of each natively supported language (listed in the table below).

For most languages, we still recommend setting a language version for your service. This helps you ensure consistent behavior between Render and your local environment.

See the table to learn how to set your language version:

LanguageDefault Version*How to Set a Version

Node.js

24.22.1

Set the NODE_VERSION environment variable, or add a .node-version file to your project root containing only the version number:

For additional options, see Setting Your Node.js Version.

Bun

1.4.4

Set the BUN_VERSION environment variable:

Python

3.14.10

Set the PYTHON_VERSION environment variable, or add a .python-version file to your project root containing only the version number:

For details, see Setting Your Python Version.

You can also set versions for the following package management tools:

  • uv
  • Poetry

Ruby

3.4.12

Set the ruby directive in your Gemfile, or add a .ruby-version file to your project root containing only the version number:

For details, see Setting Your Ruby Version.

Go

Latest stable

Render's native Go environment automatically updates to the latest stable Go 1.x version, usually within 24 hours of a new release. After an update, your service starts using the new version with its next deploy.

You can't pin to a specific Go version unless you deploy a Docker image.

Rust

Latest stable

Set the RUSTUP_TOOLCHAIN environment variable, or add a rust-toolchain file to your project root containing only the toolchain version:

For details, see Specifying a Rust Toolchain.

Elixir

1.18.4

Set the ELIXIR_VERSION and/or ERLANG_VERSION environment variables.

If you don't set ERLANG_VERSION, Render automatically uses an Erlang version that's compatible with your ELIXIR_VERSION.

For details, see Setting Your Elixir and Erlang Versions.

Other languages

N/A

To use any language besides those listed above, deploy your code as a Docker image.

*Render updates the default version for each language over time.

With the exception of Go and Rust, a particular service's default language version depends on when that service was first created. For details, see the version documentation for your language (linked from the table above).

Minimum supported language versions

Render services cannot use versions of certain languages earlier than those listed below:

LanguageMinimum Supported Version
Python

3.7.3

Ruby

3.1.0

Elixir

1.12.0

Erlang

24.3.4

Render periodically updates the underlying version of Debian used by all native runtimes.

The language versions above correspond to the minimum versions supported by Debian 12.x, "bookworm".

Docker support

When you deploy a Docker image on Render, it can use virtually any programming language and framework. This is true regardless of whether you:

  • Build your image on Render, or
  • Pull a prebuilt image from your container registry.

Learn more about Docker versus native runtimes.

Supported Languages
  • Set your language version
    • Minimum supported language versions
  • Docker support
All Systems Operational
© Render Inc. All rights reserved.