Render Service Types

Identify the right service type for your use case.

Render supports five different service types for hosting your app:

You can also create fully managed datastores to use with your app:

Choosing a service type is the first step of creating a new service in the Render Dashboard:

Selecting a service type from the New menu

Which service type is right for my app?

Nope.
Yes!
No, my app includes
server-side logic.
Yes!
No, any traffic
is outgoing.
Yes!
Continuously.
Periodically.
Will your app receive traffic
from the public internet
(browsers, mobile apps, etc.)?
Does your app consist
entirely of statically served
files (HTML, CSS, JS, etc.)?
Will your app receive private
network
traffic from your
other Render services?
Will your app run continuously,
or periodically on a schedule?
Create a
Static site
Create a
Web service
Create a
Background
worker
Create a
Cron job
Create a
Private service

See below for a summary of each service type, along with links to full documentation.

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 traffic over HTTP.

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

To get started, you can create a free instance.

Static site

Apps 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.

Create a static site if you’re building with a framework like:

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:

Background worker

Internal apps that run continuously, often to process jobs that are added to a Redis-backed queue or similar.

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:

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.

For storing data

In addition to the managed datastores below, Render supports attaching a persistent disk to most other service types.

Service TypeDescription

PostgreSQL

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

Render captures daily backups of all paid PostgreSQL instances. Larger instances support features like read replicas, point-in-time recovery, and high availability.

Redis

An in-memory key-value store that’s ideal for use as a job queue or a distributed cache. To get started, you can create a free instance.

All paid Redis instances regularly write to disk to persist data across restarts.