• 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

Services and Service Types

Understand Render's core building blocks.

On Render, you deploy and run your code as one or more services:

A given service might represent an API server, a frontend website, an agent workflow, or anything else you want to run.

Render deploys your service's code to one or more instances: containerized environments on Render infrastructure. A service's compute plan determines the CPU and RAM for each of its instances.

Service types

Whenever you create a new service, you first specify its service type, based on what your code will do:

Selecting a service type from the New menu

Render provides six different service types for running code:

  • Web service (most common for your first service)
  • Static site
  • Private service
  • Background worker
  • Cron job
  • Workflow

You can also create fully managed datastores alongside your other services:

  • Render Postgres databases
  • Render Key Value instances
    • Render Key Value is compatible with virtually all Redis®* clients.

Which service type is right for my code?

Summary of service types

For running code

Service TypeDescription

Web service

The most common service type. Dynamic web apps with a public onrender.com subdomain for receiving HTTP traffic.

If you're building a public web app using Express, FastAPI, Rails, or something similar, use this service type.

To get started, you can create a free instance.

Static site

Websites that consist entirely of statically served assets (commonly HTML, CSS, and JS). Static sites have a public onrender.com subdomain and are served over a global CDN.

Use static sites to deploy frontends created with frameworks such as:

  • Vue.js
  • Hugo
  • Svelte
  • Jekyll

Private service

Dynamic web apps that don't have a public URL. Private services do expose an internal hostname for receiving traffic from your other Render services over their shared private network.

Private services are great for deploying tools like:

  • Elasticsearch
  • ClickHouse

Background worker

Internal apps that run continuously, often to process jobs from a shared queue.

Background workers do not expose a URL or internal hostname, but they can send outbound requests to other service types.

Use background workers with a framework like:

  • Sidekiq
  • Celery

Cron job

Internal apps that run—and then exit—on a defined schedule. A cron job might run a single bash command, a script with multiple commands, or a compiled executable.

Cron jobs do not expose a URL or internal hostname, but they can send outbound requests to other service types.

Workflow

Define collections of composable, long-running tasks that execute across distributed compute. Ideal for agents, ETL pipelines, and on-demand background jobs.

Workflow task runs do not expose a URL or internal hostname, but they can send outbound requests to other service types.

For storing data

In addition to the managed datastores below, Render supports attaching a persistent disk to web services, private services, and background workers.

Service TypeDescription

Render Postgres

A powerful, open-source relational database. To get started, you can create a free instance that expires after 30 days.

Render continually backs up all paid Render Postgres instances to provide point-in-time recovery. Larger instances support additional reliability features like read replicas and high availability.

Render Key Value

An in-memory key-value store that's ideal for use as a job queue or a shared cache. To get started, you can create a free instance. Render Key Value is compatible with virtually all Redis clients.

Paid Key Value instances continuously write to disk to persist data across restarts.


*Redis is a registered trademark of Redis Ltd. Any rights therein are reserved to Redis Ltd. Any use by Render Inc is for referential purposes only and does not indicate any sponsorship, endorsement or affiliation between Redis and Render Inc.
Services and Service Types
  • Service types
    • Which service type is right for my code?
    • Summary of service types
All Systems Operational
© Render Inc. All rights reserved.