Managed PostgreSQL vs PostgreSQL on a VPS

Managed Postgres vs self-hosted on a VPS in 2026, priced on 2026-10-29: what Supabase, Neon and a 4 GB VPS actually charge, and the month where your time stops being free.

Everyone compares managed Postgres to a VPS on the sticker price, and the sticker price always wins for the VPS. The comparison that matters is the month your database needs a restore at 03:00 and you have never tested one. Prices in this guide were read from the providers’ own pages on 2026-10-29. Verified 2026-10-29.

The two options, stated plainly

  • PostgreSQL on a VPS: you install it, you patch it, you back it up, you restore it. Cheap in money, expensive in attention.
  • Managed PostgreSQL (Supabase, Neon, RDS and friends): someone else patches it, backs it up and fails it over. Cheap in attention, expensive in money — and in ways that are not obvious from the pricing page.

Both are correct answers. The mistake is picking one because of a number in a table.

What each one actually costs

Prices read on 2026-10-29, before tax.

Option Spec Monthly
OVHcloud VPS-1 2 vCores, 4 GB RAM, 40 GB NVMe, daily backup, unmetered €4.49
OVHcloud VPS-2 4 vCores, 8 GB RAM, 75 GB NVMe, daily backup, unmetered €8.49
Supabase Pro 8 GB disk per project, $10 compute credit covering one Micro instance $25
Supabase compute add-on 1 GB RAM shared / 2 GB / 4 GB / 8 GB dedicated $10 / $15 / $60 / $110
Neon Launch per CU-hour $0.106, storage $0.35/GB-month, extra branches $1.50/branch-month pay per use
Neon Scale per CU-hour $0.222 pay per use
Supabase PITR add-on point-in-time recovery, 7-day retention +$100

Two things jump out of that table, and neither is “the VPS is cheaper”.

One. A Supabase Micro instance is 1 GB of RAM for $25/month, with $10 of that returned as compute credit. A 4 GB VPS is €4.49. On RAM per euro the VPS wins by roughly a factor of twenty. What you are buying with the difference is not RAM.

Two. Point-in-time recovery on Supabase is $100/month per 7 days of retention, on top of the plan. If you want the same protection a self-hosted pgBackRest gives you for free, that one line is twenty times the price of the server you did not buy.

Neon’s model is different again: you pay per CU-hour and per GB-month, and compute can go to zero when nothing is connected. A CU running continuously for a month at the Launch rate is 730 × $0.106 ≈ $77/month, so the model only wins if your database is idle for a meaningful part of the day. Check your actual connection pattern before assuming the serverless shape is cheaper — a dashboard that polls keeps compute awake.

What the managed plan is really selling

Not disk and not RAM. It is selling five things:

  1. Backups you did not schedule and a restore button that someone has tested.
  2. Point-in-time recovery, if you pay for it (see above).
  3. Major-version upgrades that someone else ran first.
  4. Failover, on the tiers that include it.
  5. A connection pooler in front of a database that does not love thousands of connections.

If you can do 1 through 3 reliably, self-hosting wins on money and you should stop reading comparisons like this one. If you cannot, the managed price is not a hosting cost — it is insurance, and insuring a database is cheaper than losing one.

The calculation nobody does

Write your own hourly rate down. Then:

self-hosted monthly cost = VPS + (hours of database work × your rate)
managed monthly cost    = plan + (hours of migration/plumbing × your rate)

For a 4 GB VPS at €4.49 and a managed plan at $25, the difference is about €20 a month — roughly half an hour of a freelance rate. If self-hosting costs you more than thirty minutes a month in patching, backup checks and the occasional restore rehearsal, you are not saving money, you are subsidising the server with your evenings.

That flips the other way at the first incident. An unrehearsed restore is not thirty minutes; it is a night, and sometimes a customer.

When the VPS wins

  • You already run the app there and the database is under ~50 GB.
  • You have a backup script you have actually restored from.
  • Your traffic is steady, so a fixed box is not wasting capacity.
  • You enjoy this. That is a legitimate reason and it is never written in these comparisons.

When managed wins

  • You are one person and the product is the thing you get paid for.
  • You need PITR and you have priced it, not assumed it.
  • Your database is behind a serverless or edge runtime where connections are short-lived and numerous.
  • You are pre-revenue and the free tier covers you — Supabase’s Free plan includes 500 MB, Neon’s includes a free CU allowance. Both are real starting points for a prototype.

Migration, both directions

VPS → managed is a pg_dump and a restore, or logical replication if you cannot take downtime. Do it before you need it: pick a quiet afternoon, restore into the managed instance, point a staging app at it for a day.

Managed → VPS is technically the same operation and practically rarer, because the reason you moved — not wanting to run backups — does not disappear when you move back.

Whichever direction, migrate the extensions explicitly. pgvector, pg_trgm and postgis are where managed providers differ, and finding out that an extension is unavailable after the dump is a bad afternoon.

Checklist before you decide

  • Have you restored from your own backup in the last 90 days, and did you time it?
  • Do you know your cache hit ratio and whether the working set fits in RAM?
  • Have you priced PITR on the managed plan, or only the base tier?
  • Do you know how many connections your app opens at peak, and whether a pooler is in front?
  • If the box died tonight, what is the actual recovery time — measured, not estimated?

If you can answer all five, self-hosting is a defensible choice. If you cannot answer the first one, you already know the answer to this whole comparison.

FAQ

Is managed PostgreSQL worth it for a small SaaS? It is worth it when the alternative is you doing restores at 3am without having tested one. On price alone a 4 GB VPS runs Postgres for under five euros a month. What the managed plan sells is backups, point-in-time recovery, patching and failover — buy it when those are things you cannot reliably do yourself, not because the dashboard looks nicer.

How much RAM does PostgreSQL need? Enough for the working set you query most, not the whole database. Start with 2 GB of RAM on the same box as the app, watch the cache hit ratio and swap, and move the database to its own host when swap becomes routine or when a migration locks a table during peak hours.

Can I move from a VPS to managed Postgres later? Yes, and it is one of the easier migrations you will do: pg_dump and restore, or logical replication if you cannot take downtime. Going the other direction is also possible but rarely happens, because the reason people move to managed — not wanting to run backups — does not go away.

What does point-in-time recovery actually cost on Supabase? On Supabase, PITR is an add-on billed at $100/month per 7 days of retention on top of the plan, read from their pricing page on 2026-10-29. That single line often costs more than the VPS a self-hosted setup would run on, which is the whole point of this comparison.

FAQ

Is managed PostgreSQL worth it for a small SaaS?

It is worth it when the alternative is you doing restores at 3am without having tested one. On price alone a 4 GB VPS runs Postgres for under five euros a month. What the managed plan sells is backups, point-in-time recovery, patching and failover — buy it when those are things you cannot reliably do yourself, not because the dashboard looks nicer.

How much RAM does PostgreSQL need?

Enough for the working set you query most, not the whole database. Start with 2 GB of RAM on the same box as the app, watch the cache hit ratio and swap, and move the database to its own host when swap becomes routine or when a migration locks a table during peak hours.

Can I move from a VPS to managed Postgres later?

Yes, and it is one of the easier migrations you will do: pg_dump and restore, or logical replication if you cannot take downtime. Going the other direction is also possible but rarely happens, because the reason people move to managed — not wanting to run backups — does not go away.

What does point-in-time recovery actually cost on Supabase?

On Supabase, PITR is an add-on billed at $100/month per 7 days of retention on top of the plan, read from their pricing page on 2026-10-29. That single line often costs more than the VPS a self-hosted setup would run on, which is the whole point of this comparison.

Related guides