The trade-off table
| Hosting type | Cost (idle → busy) | Scaling | Cold starts | Complexity | Best for |
|---|---|---|---|---|---|
| Static | Free → very cheap | Automatic, effortless | None | Lowest | Marketing sites, docs, blogs, frontends |
| functions | Free tier → cheap | Automatic, global | Negligible | Low | Auth, redirects, light APIs, personalization |
| $0 when idle → scales with use | Automatic | Sometimes noticeable | Low–medium | APIs, webhooks, bursty/unpredictable traffic | |
| Containers | Pay while running | Automatic-ish, configurable | None (if kept warm) | Medium | Full backends, long-running jobs, custom runtimes |
| VMs | Pay 24/7 | Manual | None | Highest | Special hardware, legacy software, full control |
The pattern: as you move down the table, you trade simplicity and low idle cost for control and flexibility. Most vibe coders should fight to stay near the top.