The AI wrote it — now it has to live somewhere. WordPress runs its own track; for everything else, match the app's shape to the host that fits. Click any row for the why.
Color = hostCloudflareRenderBunnySevallaCloudways
WP
⎇ Its own track — start here if it's WordPress
WordPress / PHP / WooCommerce
The classic PHP + MySQL stack — its own ecosystem, not an app host.
RenderWeb service + managed Postgres·free tier, paid from $7/moAltSevalla · app + managed DB
Why Render?
A live server process plus a database that holds state can't run on a CDN — you need real compute.
Render runs your web service and a managed Postgres side by side; free to start, paid from $7/mo.
Free tier sleeps after 15 min idle (~1 min cold start) and its Postgres is 1 GB / 30 days — great for demos, upgrade for traffic.
4
Dockerized / custom runtime
Needs its own long-running container — a non-standard runtime, websockets, or always-on background jobs. (A Dockerfile is a clue, not the rule.)
Likea websocket server · a Discord / Telegram bot · a scheduled scraper
Bunny Magic ContainersPlain Docker, no Kubernetes·41 regions·pay-as-you-goAltRender · easierSevalla
Why Bunny Magic Containers?
A Dockerfile is just packaging. You can containerize a static HTML file too — that alone doesn't land you here. Static? → tier 1. Standard web app + DB? → tier 3.
You come here when the app needs a real, always-on container: a custom runtime, websockets, or background jobs a CDN and a sleep-on-idle web service can't run.
Bunny runs your plain Docker image across 41 regions, no Kubernetes, pay-as-you-go by CPU / RAM / traffic. Want easier? Render also runs Docker; Sevalla too.
Not sure which one you have?Read the files the AI generated — the strongest signal wins.
only .html .css .js or a dist/ build→ Static
server.js · app.py requirements.txt + start→ Needs a server
its own Postgres or MySQL database→ Needs a database
a Dockerfile for a real long-running app→ Containerized