Services and Service Types – Render Docs

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

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:

Render provides six different service types for running code:

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

Which service type is right for my code?

Will your code receive incoming traffic?

Will any of that traffic come from the public internet?

Does your code perform any server-side logic?

Are you running simple tasks on a schedule?

Do you want Render to handle job queuing and provisioning?

Summary of service types

For running code

Service Type Description
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 Type Description
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.