You picked a headless CMS. Strapi, Directus, or Payload. The local setup took an afternoon, the content model is done, and the admin panel looks great on localhost:1337.

Then you hit the wall everyone hits: where does the backend actually live?

This is the part the tutorials skip. A headless CMS is not a static site you can drop on a CDN. It is a long-running Node process that needs a database, persistent storage for uploads, and an admin panel that has to stay awake. Host it wrong and you get cold starts on your editor login, lost media files after a redeploy, or a database bill that costs four times the server it sits next to.

I have run all three of these on half a dozen platforms. Below is what a headless CMS actually needs, the four real hosting routes, and what each one costs in August 2026. Every price here was read off the vendor’s own pricing page on 2026-08-20, because a lot of the numbers you will find in older articles are now wrong by a factor of five.

What a headless CMS actually needs to run

Before comparing hosts, it helps to know what you are hosting. A headless CMS backend has four hard requirements:

  • A Node.js runtime that stays on. Strapi, Directus, and Payload are persistent servers, not serverless functions. The admin panel and the API have to be reachable around the clock, so anything that sleeps on idle is a problem. Strapi’s docs are specific about the runtime: only Active LTS or Maintenance LTS versions of Node are supported, currently v22, v24, and v26, and odd-numbered “current” releases like v23 and v25 are not.
  • A real database. This is where every piece of content lives, and it has to survive restarts and redeploys. Which database is not a free choice, either. Strapi’s docs say plainly that it “does not support MongoDB (or any NoSQL databases), nor does it support any ‘Cloud Native’ databases (e.g., Amazon Aurora, Google Cloud SQL, etc.)”. It wants PostgreSQL 14 or newer, MySQL 8.0 or newer, MariaDB 10.3 or newer, or SQLite 3. Payload is the odd one out here and is happy on MongoDB or Postgres.
  • Persistent file storage. Uploaded images, PDFs, and media. If your host wipes the filesystem on every deploy, your media library disappears unless you wire up external object storage first.
  • Enough memory. None of the three publish a hard RAM minimum, so ignore anyone who quotes one as gospel. In practice Strapi is the hungriest because it rebuilds its admin panel at build time, and 1 GB is the number I would not go below in production. Directus and Payload are lighter, but 256 MB will make all three miserable.

Miss any one of these and the CMS technically “runs” but breaks the first time a real editor uses it. Now the four routes.

Route 1: the vendor’s own cloud

Every one of these projects sells a hosted version, and it is the path of least resistance. It is also, by a wide margin, the most expensive, and the picture changed a lot in the last year.

Service Entry price What you get Status
Strapi Cloud $35/mo (Starter) 100k API requests, 50 GB asset storage, 50 GB asset bandwidth, unlimited database entries Available
Strapi Cloud Pro $90/mo 1M API requests, 250 GB asset storage, 500 GB asset bandwidth Available
Directus Cloud $99/mo add-on Cloud hosting added to the free Core plan (3 seats, 25 collections, 5 flows) Available
Directus Team $499/mo billed annually, $599/mo monthly 10 SSO seats, 50 collections, 20 flows, cloud hosting included Available
Payload Cloud Not published Existing projects only New deployments paused

Two things in that table deserve more than a row.

Payload Cloud is not currently taking new projects. Payload’s own cloud page says it directly: “Although deployment of new projects is currently paused, existing Cloud projects will continue running as normal.” Payload joined Figma in an announcement dated 17 June 2025, and the hosted product has been in a holding pattern since. If you are starting a Payload project today, the vendor cloud is not an option you can pick, and every article that lists Payload Cloud pricing alongside the other two is out of date. Self-hosting is the supported path.

Directus pricing is not what most articles say. The cheap Directus Cloud tiers people quote from 2024 are gone. Today the free Core plan gets you 3 user seats, 25 collections, and 5 flows, and self-hosting on it costs nothing. Adding Directus Cloud hosting to that is $99/mo. The Team plan is $499/mo billed annually, or $599/mo month to month. There is one genuinely useful escape hatch: Directus runs an Open Innovation Grant, and by their own description, “Organizations under $5M in annual revenue and fewer than 50 employees qualify for fully permissive access to Directus at no software cost.” If you are a small shop, read that page before you assume you need a paid tier.

The honest case for vendor cloud is that it is the only option where the people who wrote the CMS are also the people running it. Upgrades, backups, and the “why is my admin panel 502-ing” question are theirs, not yours. If your content team is ten people and the CMS is load-bearing for the business, $35 or $99 a month is genuinely cheap next to an engineer’s afternoon. The case against it is that you are paying platform prices for what is, underneath, a Node process and a Postgres database.

Route 2: a general-purpose PaaS

This is where most developers land: Render, Railway, Fly.io, or DigitalOcean App Platform. Push a repo, get a URL. All four can genuinely run a headless CMS, which is more than the frontend hosts can say.

Before the table, the trap: on every one of these, the database is a separate paid line item. The advertised entry price is the compute only. The database is what actually sets your bill, and it is usually the larger half.

Platform Cheapest always-on compute Cheapest usable database Persistent uploads Bandwidth
Render Starter $7/mo (512 MB, 0.5 CPU) Basic-1gb Postgres $19/mo (1 GB, 0.5 CPU) Disks at $0.25/GB/mo 5 GB included, then $0.15/GB
Railway $5/mo Hobby minimum, then metered Same meter: RAM $10/GB/mo, vCPU $20/vCPU/mo Volumes at $0.15/GB/mo Egress $0.05/GB
Fly.io $5.92/mo for a 1 GB shared-CPU machine You run it yourself on a second machine Volumes at $0.15/GB/mo $0.02/GB in NA and EU
DigitalOcean App Platform $10/mo (1 vCPU, 1 GiB, fixed) Dev database $7/mo (512 MiB), managed Postgres $15/mo (1 GiB) Object storage, separate 100 GiB included at that tier, then $0.02/GiB

Render has the cleanest dashboard of the four and proper persistent disks. Its published instance types are Free at $0 (512 MB, 0.1 CPU), Starter at $7/mo (512 MB, 0.5 CPU), and Standard at $25/mo (2 GB, 1 CPU). Postgres runs Free for 30 days, then Basic-256mb at $6/mo, Basic-1gb at $19/mo, and Basic-4gb at $75/mo. That $6 tier is 256 MB and will not hold a real content database, so the honest floor is $19. Two details that catch people: the Hobby workspace includes only 2 custom domains and then charges $0.25/domain/mo, and bandwidth above 5 GB is $0.15/GB.

Railway is the nicest deploy experience here and it is genuinely cheap for spiky workloads. The problem is that a CMS is the opposite of spiky. Railway’s published rates are $10/GB/month for memory, $20/vCPU/month for CPU, $0.15/GB/month for volumes, and $0.05/GB for egress, with a $5/mo Hobby minimum that includes $5 of usage credits, or $20/mo on Pro including $20 of credits. Run the arithmetic on a CMS that is always on: 1 GB of memory for the app is $10, a modest 0.3 vCPU average is $6, a small Postgres service adds roughly another $5, and a 5 GB volume is $0.75. That is about $22/mo before traffic, and the number moves every month.

Fly.io is the cheapest thing on this list and it is not close. A 256 MB machine is $2.02/mo, 512 MB is $3.32, 1 GB is $5.92, and 2 GB is $11.11. Volumes are $0.15/GB/mo and egress in North America and Europe is $0.02/GB. Run the CMS on a 1 GB machine and Postgres on a 512 MB one and you are at roughly $10.74/mo with 10 GB of volumes. The catch is real, though: you are managing that Postgres yourself, the machine root filesystem is ephemeral so all persistence lives on volumes you configure by hand, and the mental model is closer to running infrastructure than to shipping a content site.

DigitalOcean App Platform is the most predictable of the four because everything is a flat monthly number. The shared fixed instances are $5/mo for 1 vCPU and 512 MiB, and $10/mo for 1 vCPU and 1 GiB, with autoscaling versions at $12/mo and $25/mo. The development database is $7/mo for 512 MiB, and a real managed PostgreSQL starts at $15/mo for 1 GiB, 1 vCPU, and 10 GiB of disk. So a Strapi instance that will not fall over is $10 plus $7 for a dev database, or $10 plus $15 if you want a database you would actually trust with a client’s content.

Route 3: a raw VPS

Rent a Linux box, install everything, own the whole stack. On DigitalOcean the Basic Droplets are $4/mo for 512 MiB, 1 vCPU, 10 GiB SSD and 500 GiB of transfer, $6/mo for 1 GiB, 1 vCPU, 25 GiB SSD and 1,000 GiB of transfer, and $12/mo for 2 GiB, 1 vCPU, 50 GiB SSD and 2,000 GiB. For a headless CMS with the database on the same box, the $6 tier is the realistic entry point.

Six dollars is a fantastic price. It is also not the cost.

The cost is the afternoon. Here is the actual list you work through before a single piece of content exists: create the droplet and lock down SSH, install Node at a version Strapi supports, install and secure PostgreSQL, create the database and user, set up a process manager so the CMS restarts on reboot, install and configure nginx as a reverse proxy, point your domain’s A record at the server and wait for DNS to propagate, run certbot for the TLS certificate and set up the renewal cron, configure the firewall, and then work out a backup story for both the database and the uploads directory. Every one of those is easy. All of them together is two to four hours the first time, and it is the DNS and certificate step that eats the most clock, because you cannot debug it faster than propagation lets you.

Then it is yours forever. Security patches, Node upgrades, disk filling up at 2am. If you enjoy that, a VPS is unbeatable value and I am not going to talk you out of it. If you were hoping to write content this week, it is a tax.

Route 4: managed self-hosting

The fourth route is the one that barely existed three years ago: someone else runs the server, but it is still a real server with your database on it and root access for you. You get the VPS economics without the afternoon.

The reason this matters for a CMS specifically is the database. Every PaaS in route 2 charges you separately for Postgres because their architecture separates compute from state. A single server does not have that problem. Strapi, Directus, and Payload all run perfectly well with the database on the same machine, and for a content site doing a few thousand visits a month, a separately billed managed database is solving a problem you do not have.

This is the same arithmetic that shows up whenever you price self-hosting honestly against the managed equivalent, and it is worth reading the full breakdown of what self-hosting actually costs in 2026 before you commit to a platform, because the compute is almost never the line item that decides it.

For a concrete number: on InstaPods the Build plan is $7/mo flat for 2 vCPU, 2 GB of RAM, and 25 GB of storage, which comfortably fits Strapi plus Postgres on one pod. The Launch plan at $3/mo (512 MB, 10 GB) is enough for a small Directus or Payload instance but is tight for Strapi. You get SSH, a real Linux server, persistent disk for uploads, automatic TLS on a live URL, and instant launch rather than a provisioning queue. The nginx and certificate work from the VPS list is already done.

The real monthly totals

Here is every route priced for the same job: one always-on headless CMS with roughly 1 to 2 GB of RAM, a Postgres database, and persistent uploads. Compute plus database, before traffic.

Setup Compute Database Real monthly total
Directus Cloud (add-on on free Core) Bundled $99/mo
Strapi Cloud Starter Bundled $35/mo
Render Standard + Basic-1gb Postgres $25/mo $19/mo $44/mo
Render Starter + Basic-1gb Postgres $7/mo $19/mo $26/mo
DigitalOcean App Platform + managed Postgres $10/mo $15/mo $25/mo
Railway (always-on app + database service) Metered ~$22/mo, variable
DigitalOcean App Platform + dev database $10/mo $7/mo $17/mo
Fly.io (1 GB machine + your own Postgres) $5.92/mo $3.32/mo + volumes ~$10.74/mo, self-managed
Managed server, database on the same box $7/mo Included $7/mo flat
Raw VPS, database on the same box $6/mo Included $6/mo + 2-4 hours of setup

The spread from top to bottom is more than 16x for the same workload. Almost none of that gap is performance. It is packaging.

What about Vercel and Netlify?

Worth answering directly because it is the first thing people try. Vercel is $0 on Hobby and $20/mo on Pro with additional developer seats at $20/month, and it is excellent at what it does. What it does is host your frontend.

Running Strapi or Directus there means running a persistent server as serverless functions, which gives you cold starts on the admin login and a filesystem that resets between invocations. Your uploads vanish. This is not a pricing problem you can solve by upgrading, it is an architecture mismatch. The right shape is a Vercel or Netlify frontend consuming the API of a CMS backend hosted somewhere that keeps a process alive.

Which one should you actually pick

  • Side project or a portfolio site. A single server with the database on it, at $3 to $7/mo. Do not pay $19/mo for managed Postgres to serve a blog.
  • Client work where you hand over the keys. Managed self-hosting or DigitalOcean App Platform with a real managed database at $25/mo. You want somebody else patching the host, and you want the client’s bill to be a number you can say out loud in advance.
  • A content team that is not you. Strapi Cloud at $35/mo, if you are on Strapi. When editors are blocked, “the vendor is fixing it” is worth $35.
  • You already run infrastructure. Fly.io at around $11/mo, or a raw VPS at $6/mo. You will not learn anything new from a PaaS and you will pay three times as much for it.
  • Anything with unpredictable traffic and a real budget. Railway, and set a spend limit on day one. Metered billing on an always-on service is the one combination that produces surprise invoices.

Notes for each CMS

  • Strapi is the heaviest of the three and the fussiest about its stack. Give it 1 GB and stay on a supported LTS Node release. Do not plan around MongoDB, because Strapi does not support it or any other NoSQL database. Postgres 17 is what the docs recommend, 14 is the floor, and SQLite is fine for a small project as long as you remember it needs Python present.
  • Directus is the lightest to run and the most interesting to price, because self-hosting it is free on every plan including Core, and the Open Innovation Grant covers organizations under $5M in revenue with fewer than 50 employees at no software cost. Check whether you qualify before you compare hosting at all.
  • Payload is Node-native and pairs tightly with a Next.js frontend, and with vendor cloud deployments paused, self-hosting is the path. It is the only one of the three that will happily use MongoDB, so if you already have a Mongo instance, Payload is the CMS that lets you keep it.

Frequently asked questions

Can I host a headless CMS on Vercel or Netlify?
You can host the frontend that consumes the CMS there, but not the CMS backend itself. Strapi, Directus, and Payload are persistent Node servers that need a database and always-on uptime, which serverless platforms do not provide. Host the backend on a real server and point your Vercel frontend at its API.

Do I need a separate managed database for Strapi or Directus?
No. Both run fine with the database on the same server as the CMS. SQLite works for small projects, and a Postgres installed on the same machine handles production traffic for a content site. A separate managed database is optional, and on Render or DigitalOcean it is the line item that decides the bill. On Render it takes a $7 plan to $26. On DigitalOcean App Platform it takes $10 to $25.

What is the cheapest way to host a headless CMS in 2026?
A single server running both the CMS and its database on flat pricing. That is $6/mo on a DigitalOcean Droplet if you do the setup yourself, or $7/mo on a managed server if you would rather skip the nginx and TLS work. Compare that to $26 to $44/mo on Render and $35 to $99/mo on a vendor cloud for the same workload.

Is Payload Cloud still available?
Not for new projects. Payload’s cloud page states: “Although deployment of new projects is currently paused, existing Cloud projects will continue running as normal.” Payload joined Figma in an announcement dated 17 June 2025. Self-hosting is the supported route for new Payload builds.

How much RAM does Strapi need?
Strapi’s docs do not publish a RAM minimum, so treat any specific figure as a rule of thumb rather than a spec. In practice 1 GB is the number I would not go below in production, because Strapi rebuilds its admin panel and runs a Node process alongside it. Directus and Payload are lighter and are comfortable on less.

Does hosting choice affect how fast my site is?
Less than you would think, because the frontend is usually static or server-rendered somewhere else and only talks to the CMS on build or on cache miss. What hosting choice affects is admin panel responsiveness for your editors and whether media uploads survive a deploy. Optimize for those, not for benchmark latency on the API.

The verdict

The right host for a headless CMS is the one that runs a Node process, keeps a database alive next to it, persists your uploads, and bills you a number you can predict. The frontend hosts cannot do the first part at all. The PaaS options can do all of it, but the separately billed database is what turns a $7 plan into a $26 one, and almost nobody mentions that until the first invoice.

If you want full control and do not mind the afternoon, a $6 Droplet with Postgres on the same box is still the best raw value in this comparison. If you want that same single-server shape without configuring nginx, DNS, and certificates by hand, a managed server at around $7/mo flat is the middle ground, and it is the option that has changed most in the last two years. If your CMS is load-bearing for a business and a content team depends on it, pay the vendor and stop thinking about it.

Whatever you pick, keep the CMS and its database on the same server unless you have a specific reason not to. That single decision is worth more than every other line in the comparison.

For more on picking the CMS itself, see our guide to the best headless CMS in 2026 and the broader look at the best CMS for developers beyond WordPress.