Skip to main content

Deployment platforms

Managed places, grouped by the kind of service. For a server you operate yourself, use the VPS playbook instead of a row below.

Decision chart​

Supabase is not an app host. It is the database, auth and file API. The Node or Python process still needs a platform row or the VPS.

Comparison​

Pick the service first, then the platform. Amounts are from each vendor's own pricing page, checked 2026-11-01. A cell that says verify was not confirmed on that pass. Open the linked page before you rely on a number.

Frontend hosting​

Static sites and server-rendered frontends. Cloudflare sits here because of Pages. Workers on that same page are for a short request at the edge. R2 and Tunnel are the other products on that page, and Tunnel is also in the last group.

PlatformBest forRuntime modelFree tier (checked 2026-11-01)Paid starts at (checked 2026-11-01)DatabasesCustom domains + TLSRegionsDeploy fromGotchas
VercelFrontend and SSR, especially Next.jsServerless and edgeHobby $0. Includes 100 GB Fast Data Transfer and 1,000,000 function invocations. HobbyPro $20/month, includes $20 usage credit. ProNo first-party Postgres on the Hobby page (verify). Blob is listedIncluded. Hobby allows 50 domains per projectFluid compute is priced per region. Full name list: verifyGit, CLI, dashboardFunction duration is capped. Pro bills usage after the credit
NetlifyStatic sites and JS frameworksStatic and serverlessFree $0, 300 credits/month. The project pauses when credits run out. PricingPersonal $9/month (1,000 credits)Netlify Database and Blob are on Free. Engine and extra caps: verifyCustom domains with SSL on FreeGlobal CDN. Region list: verifyGit, CLI, dashboardA production deploy costs 15 credits
CloudflareEdge apps, static sites, object storage, tunnelsStatic, edge, serverlessWorkers Free: 100,000 requests/day. R2 Free: 10 GB-month. Workers, R2Workers Paid minimum $5/monthKV and D1. D1 free limits: verify. R2 is object storage, not SQLPages custom domains. TLS at the edgeGlobal anycast. City list: verifyGit, WranglerWorkers bill CPU time. Pages and Workers are different products

Application hosting​

A long-running API or worker, when you will not patch the server. Render sleeps when idle on the free plan. Railway sleep is opt-in. Fly.io stays in the region you pick, and you pay while the Machine runs.

PlatformBest forRuntime modelFree tier (checked 2026-11-01)Paid starts at (checked 2026-11-01)DatabasesCustom domains + TLSRegionsDeploy fromGotchas
RenderWeb services, workers, cronContainerFree web service: 750 instance hours/month, spins down after 15 minutes idle. FreeInstance from $7/month (under 1 CPU, 512 MB). Workspace Pro is $25/month extra. PricingFree Postgres exists. Storage and expiry: verifyCustom domains and managed TLS on Freeverify the current region listGit, CLI, render.yamlFree services sleep. Free filesystem is ephemeral. Free rollbacks keep only the two previous deploys
RailwayApp plus database in one projectContainerTrial: $5 one-time credit, 30 days. Free plan: $1/month usage. PricingHobby $5/month, includes $5 usage. Both official pages agree on this minimumManaged Postgres is a service with a volume. Free and Trial volumes are 0.5 GBverify the current domains docMarketing page says global regions. List: verifyGit, CLIThe marketing page and the docs disagree on CPU and RAM unit rates (verify the invoice). Serverless sleep is opt-in, not the default
Fly.ioContainers placed in a chosen regionVM (Machines)No free tier for new organizations, and no monthly free allowance. Pricing updateshared-cpu-1x with 256 MB in Ashburn or Secaucus: $2.19 per 30 days, plus egressPostgres is a Machine plus a volumeFirst 10 single-hostname certificates free, then $0.10/month eachCheapest public example is iad or ewr. Full list: fly platform regions (verify the live list)CLI, fly.tomlYou pay while the Machine runs. Egress is billed

Backend services​

Managed Postgres, auth, and file storage. The API process still runs on an application host or on the VPS.

PlatformBest forRuntime modelFree tier (checked 2026-11-01)Paid starts at (checked 2026-11-01)DatabasesCustom domains + TLSRegionsDeploy fromGotchas
SupabasePostgres, auth, storage. Not the API processBaaSFree $0: 500 MB database, 50,000 MAU, pauses after 1 week inactive, 2 projects. PricingPro $25/month, includes $10 compute creditPostgres is the product. Enable row level securityAPI custom domain: verifyOne region per project, chosen at creation. List: verify in the dashboardCLI, dashboardThe service role bypasses row level security. Free projects have no automatic backups

Tunnels​

A machine that is already running, shared for a demo or a webhook. This is not where the app is deployed.

PlatformBest forRuntime modelFree tier (checked 2026-11-01)Paid starts at (checked 2026-11-01)DatabasesCustom domains + TLSRegionsDeploy fromGotchas
ngrokExpose a local portTunnelFree $0 plus a $5 one-time credit (one year). 1 development domain, interstitial on HTTP. PricingHobbyist $10/month, or $8/month billed annually ($96/year)NoneFree plan: the development domain. Bring-your-own domains are Pay-as-you-goverify the edge region listAgent, ngrok.ymlFree HTTP shows an interstitial. Usage stops when the credit is gone
Cloudflare TunnelA stable hostname to a private originTunnelNo separate Tunnel price was found (verify). Quick Tunnels (docs updated 2026-08-24): random name, no SLA, 200 in-flight requests. Named tunnels (account limits updated 2026-10-16): 1,000 tunnels, 25 replicasNo separate price was found (verify)NoneNamed tunnel uses a CNAME. TLS is at the edgeGlobal anycast. City list: verifycloudflared, dashboardQuick Tunnels are for testing, not production. cloudflared version: verify

Connects to​

  • DevOps: the short version of this chart, plus the deploy-path map.
  • Self-host a Docker stack: when the chart ends at a VPS.
  • CI/CD: what you still need when the platform does not build and deploy for you.
  • Compute: the same kind of choice on AWS.