Pain Point: Many teams choose between an edge CDN platform (Vercel, Cloudflare, Netlify) and a budget VPS (DigitalOcean, Hetzner, a $5 droplet) for Jamstack static sites without precise cost, latency, or invalidation trade-offs. Decision often becomes reactive after unexpected bandwidth bills, cache-miss spikes during launches, or poor global TTFB.
Solution Immediate: Clear, reproducible benchmarks and a decision matrix clarify when a cheap VPS is sufficient and when an edge CDN is mandatory. This analysis includes cost models (USD/GB, USD/million requests), reproducible TTFB/95p latency tests, cache-control strategies, example Nginx/Caddy configs, CI/CD and purge workflows, and a 3-step migration checklist executable in under 10 minutes.
Key takeaways for fast Jamstack sites
- Edge CDN platforms usually win for global TTFB and predictable egress at scale. For geographically dispersed users, CDN points-of-presence (PoPs) reduce latency and offload origin traffic.
- Cheap VPS can beat CDNs for low-cost regional sites or low-traffic projects when combined with object storage origin, long immutable caching, and a minimal HTTP/3-capable edge like Caddy or Cloudflare Tunnel.
- Egress and requests cost dominates long-term spend. Calculate USD/GB and USD per million requests across expected traffic profiles before deciding.
- Cache strategy and CI workflow matter more than raw CPU. Content hashing, cache-control immutable, and atomic deploys eliminate most purge needs and keep VPS viable.
- Security, uptime, and DDoS protection are stronger on managed CDN platforms unless a VPS includes a DDoS/edge provider in front.
CDN vs cheap VPS for US Jamstack sites: what changes with 2026
2026 updates: more CDNs offer built-in edge functions, HTTP/3 with QUIC is widely supported, and major cloud egress pricing varies further by region. For US-centric Jamstack sites with predictable regional traffic, a cheap VPS plus object storage origin still often yields the lowest total cost while achieving excellent TTFB for the contiguous US (CONUS). For globally distributed audiences, CDNs continue to provide superior latency and operational simplicity.
When cheap VPS is viable for Jamstack
Cheap VPS is a competitive choice when these conditions are met:
- Traffic is primarily US-based or confined to 1–2 regions.
- Monthly bandwidth stays below ~2–4 TB depending on provider egress pricing and CDN alternatives.
- Build frequency is low (< daily) or CI workflows avoid full-site purges.
- Team can manage server security, TLS, and build/deploy automation.
Advantages of a well-configured cheap VPS:
- Lower baseline cost per month for small sites.
- Full control of origin behavior and cache headers.
- Easier integration with SSGs that produce content hashing and immutable assets.
Limitations:
- Single point of presence increases latency outside the VPS region.
- Responsibility for TLS, DDoS protection, and scaling rests with the operator.
- Unexpected egress spikes can blow past budget forecasts.
When an edge CDN is necessary
An edge CDN becomes essential when:
- Audience is globally distributed across Americas, EMEA, APAC.
- Site requires low cold-start TTFB worldwide and consistent 95p latency.
- Traffic spikes (marketing campaigns, viral content) are expected.
- Developer experience needs built-in previews, instant rollbacks, and integrated edge functions.
Edge CDN benefits:
- Multi-region PoPs reduce TTFB and increase cache hit ratios for global users.
- Managed invalidation, DDoS protection, and SLA-backed uptime.
- Developer features: preview deployments, analytics, and integrated build minutes.
Costs to watch:
- Egress pricing differences, especially cross-region.
- Build minutes and serverless edge function pricing can add up.
Edge CDN or VPS for the fastest TTFB: measurable tests
A reproducible test plan matters. Example benchmarking approach:
- Deploy identical static build to: Vercel (edge CDN), Cloudflare Pages (edge CDN), and a $6/month VPS (NYC) with an object storage origin (S3-compatible) and Nginx or Caddy.
- Use synthetic clients in US East, US West, London, São Paulo, and Singapore. Run k6 or curl scripts for 24 hours and measure median TTFB, 95th percentile latency, and cache-hit ratio.
- Record results per region and aggregate egress used.
Representative 2026 benchmark summary (example figures):
- Vercel: median TTFB US East 8–12 ms, 95p US 25–40 ms, global 95p 45–120 ms; cache-hit 98%.
- Cloudflare: median TTFB US East 6–10 ms, 95p US 20–35 ms, global 95p 25–80 ms; cache-hit 99%.
- Cheap VPS (NYC): median TTFB US East 12–25 ms, 95p US 40–70 ms, global 95p 120–350 ms; cache-hit 95% (when using CDN-like caching headers and object storage origin).
Conclusion: For US-only audiences, a properly optimized VPS can approach CDN-level TTFB in CONUS, but global latency remains higher.
Hidden bandwidth and egress costs: CDN vs VPS (real numbers)
Cost model variables:
- Egress per GB (USD) from provider.
- Requests per month and average object size.
- Cache hit ratio at edge.
- Invalidation frequency and origin fetch rate.
Sample cost table (2026 typical advertised rates), approximate USD per GB and per million requests:
| Provider |
Outbound egress (USD/GB) |
Requests (USD / 1M) |
Notes |
| Cloudflare (paid plans) |
$0.01–$0.09 (varies by plan/region) |
$0–$0.50 (many plans include requests) |
Extensive edge PoPs; free plan limits exist |
| Vercel |
$0.05–$0.12 |
$0.10–$2 (edge functions billed separately) |
Includes immutable caching features & previews |
| DigitalOcean (VPS) |
$0.01–$0.02 (first TB incl.), then $0.01–$0.02 |
Requests billed via object storage (Spaces) $0.005–$0.01 / 10k |
Low baseline; expensive at scale without CDN |
| Hetzner (VPS) |
$0.01–$0.02 in EU; variable for US |
Requests via object storage or third-party |
Very low VPS cost in EU; US region options vary |
| AWS CloudFront + S3 |
$0.02–$0.08 (tiered by usage & region) |
$0.40–$1.20 / 1M (HTTP requests) |
Complex tiering; cost-effective at scale if optimized |
How to estimate real spend:
- Calculate monthly egress = monthly pageviews × average bytes per page × (1 - cache hit ratio at edge).
- For a VPS origin without CDN, cache hit ratio equals browser caching + CDN-like proxy (if any). For a CDN, use provider's edge cache hit ratio.
- Factor in build minutes, preview bandwidth (platform-specific), and edge function execution.
Example: 100k monthly visits, average page payload 1.2 MB, 95% cache-hit at CDN vs 70% at VPS origin.
- CDN egress = 100k × 1.2 MB × (1 - 0.95) = 6 GB origin egress; most egress served from edge with low or included cost depending on plan.
- VPS egress = 100k × 1.2 MB × (1 - 0.70) = 36 GB origin egress; plus any direct visitor downloads from origin if misconfigured.
This demonstrates how cache-hit improvement dramatically lowers origin egress.
Which option gives better uptime and DDoS protection?
CDN platforms typically deliver higher uptime SLAs and integrated DDoS mitigation. Managed providers offer:
- Global.anycast routing and absorbent edge networks.
- Web Application Firewall (WAF) and automated bot/DDoS mitigation.
- SLA-backed availability and multi-region redundancy.
Cheap VPS risks:
- Single-region failure or noisy-neighbor issues unless using multi-VPS strategies.
- Additional cost and complexity to add DDoS protection (third-party scrubbing, Cloudflare Spectrum, or network provider add-ons).
Mitigation strategies for VPS:
- Use Cloudflare (proxy-only) or a DDoS service in front of the VPS to gain edge protection while keeping origin on a cheap droplet.
- Implement multi-region origin via object storage in different regions and use a low-cost DNS load balancer with health checks.
Uptime numbers: expectation vs reality
- Edge CDN: 99.99% SLA typical on paid plans.
- Single cheap VPS: 99.5%–99.9% dependent on provider and snapshot/backup routines.
For mission-critical sites, managed CDN with SLA is recommended.
Best choice for scaling Jamstack builds: CDN or VPS?
Scaling builds and CI/CD differs from serving assets. Key considerations:
- Build minutes: Vercel/Netlify include build infrastructure; heavy builds can incur costs.
- Atomic deploys and preview URLs simplify rollbacks and PR previews, strong advantage for CDNs.
- With a VPS, CI can push to object storage and trigger cache invalidation; complexity increases but costs may be lower at low volume.
When builds are frequent, team size is large, or preview workflows are essential, CDNs provide superior developer experience.
Strategies to minimize purges and build impact
- Use content hashing (file fingerprinting) so new builds publish new filenames; set Cache-Control: immutable, max-age=31536000 for hashed assets.
- Only purge the HTML/edge route on content changes; keep static immutable assets untouched.
- Use CI hooks to trigger smart cache invalidation APIs selectively.
Serving Jamstack from a cheap VPS: practical configuration snippets
Example Nginx snippet (HTTP/2 + Brotli):
server {
listen 443 ssl http2;
server_name www.example.com example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
brotli on;
brotli_comp_level 6;
gzip on;
location / {
root /var/www/site;
try_files $uri $uri/ /index.html;
add_header Cache-Control "public, max-age=0, s-maxage=3600, stale-while-revalidate=86400";
}
location ~* /.(?:js|css|jpg|jpeg|png|webp|svg|gif|woff2?)$ {
add_header Cache-Control "public, max-age=31536000, immutable";
}
}
Example Caddyfile (HTTP/3 + automatic HTTPS + brotli):
example.com {
root * /srv/site
file_server
encode zstd gzip
header Cache-Control {
/assets/* "public, max-age=31536000, immutable"
/ "public, max-age=0, s-maxage=3600, stale-while-revalidate=86400"
}
}
Serving from object storage (S3-compatible) as origin and using a reverse proxy to cache reduces disk IO and simplifies scaling.
CI/CD and cache invalidation: patterns that reduce cost
- Content hashing + immutable caching: eliminate most purges.
- Selective HTML purge: only purge pages changed in a PR merge; use your CI diff to target purge API.
- Stale-while-revalidate: let users receive slightly stale content while revalidating in background.
- Use Cache-Control and ETag/Last-Modified for conditional requests.
Recommended purge flow (example):
- CI builds and outputs a manifest of changed paths.
- CI uses provider purge API to invalidate only changed HTML routes and API endpoints.
- Immutable assets never purged; deploy uses atomic switch (rename directory or update object prefix).
| Use case |
Best fit |
Why |
Typical monthly threshold |
| Small US-only marketing site, <50k visits |
Cheap VPS + object storage |
Low egress, simple deploy, minimal infra cost |
<100 GB egress / mo |
| Global audience, unpredictable spikes |
Edge CDN |
Global PoPs, auto-scaling, DDoS protection |
Any scale; cost saved by cache hit at edge |
| Frequent previews, team collaboration |
Edge CDN (Vercel/Netlify) |
Built-in previews, atomic rollbacks, analytics |
Depends on build minutes |
| Budget constrained but technical sysadmin |
Cheap VPS + Cloudflare (proxy) |
Feeds edge protection and caching without full CDN vendor lock |
Variable, good up to moderate traffic |
Decision flow, Jamstack hosting
- Is audience global? → Yes: choose Edge CDN 🌍 → No: go next
- Is monthly egress < 200 GB and US-centric? → Cheap VPS ✅
- Need previews/rollbacks? → Edge CDN for dev experience 🔁
- Need DDoS protection? → Add CDN or proxy in front of VPS 🛡️
Estimated decision
CDN or VPS
Based on audience & egress
Strategic analysis: risks and mitigation
Pros for Cheap VPS:
- Lower monthly fixed costs for small, regional sites.
- Full control of origin and caching headers.
- Easier to integrate custom server logic or SSE if necessary.
Cons for Cheap VPS:
- Higher operational overhead (security, TLS renewal, scaling).
- Single-region latency penalties for global users.
- Potential surprise egress charges and capacity limits.
Pros for Edge CDN:
- Minimal ops, global performance, strong DDoS protection and SLA.
- Enhanced developer features: previews, analytics, integrated edge functions.
Cons for Edge CDN:
- Higher variable costs for heavy dynamic edge function usage and egress in some regions.
- Platform limits (build minutes, bandwidth tiers) may add costs for high-volume sites.
Mitigation recommendations:
- For VPS: front with Cloudflare (proxy-only) to gain DDoS/caching and keep origin cheap.
- For CDN: optimize cache-hit via content hashing to minimize expensive origin egress and edge function calls.
FAQ
Is a $5 VPS enough for a production Jamstack marketing site?
Yes, for low-traffic, US-only sites with proper caching and S3-like object storage for assets, a $5 VPS can be production-ready if monitored and fronted by a caching layer or proxy.
How much bandwidth will a typical Jamstack site use per 100k visits?
Estimate: 100k visits × average 1–1.5 MB page ≈ 100–150 GB. Heavy media or large images increase egress proportionally.
Will HTTP/3 improve TTFB for a VPS-hosted site?
HTTP/3 reduces connection setup latency and improves performance on lossy mobile networks; however, global PoP proximity matters more for far-away users.
How to avoid frequent CDN purges with CI/CD?
Use file fingerprinting (content hashing) for static assets and only purge HTML or changed routes based on a deploy manifest from CI.
Are edge functions required for Jamstack static sites?
Edge functions are optional. They help with personalization, geolocation, or A/B testing at the edge. For pure static content, edge functions are unnecessary and add cost.
Can object storage be used as origin for better scale?
Yes. Using S3/Backblaze/Spaces as origin offloads storage and simplifies multi-region replication. Combine with a CDN or reverse proxy for performance.
How to estimate CDN vs VPS costs accurately?
Model traffic (visits × avg bytes), expected cache-hit ratio, requests, and build minutes. Run a 2–4 week synthetic test with representative traffic to measure real egress and cache behavior.
Which providers integrate well with Jamstack workflows?
Major options: Vercel, Netlify, Cloudflare Pages, and self-hosted flows using DigitalOcean or Hetzner.
Action plan, 3 steps under 10 minutes
Step 1: Quick audit (3 minutes)
Run one-page size check: open site in browser, record page size and main asset sizes (images, JS). Note current traffic estimate from analytics.
Step 2: Test rollout (3 minutes)
Deploy a build to a free trial of an edge CDN (Cloudflare Pages or Vercel) and measure median TTFB in US East and US West with simple curl or k6 script.
Step 3: Cost check (3 minutes)
Estimate monthly egress: visits × avg page bytes × (1 - expected cache hit). Compare egress cost with CDN vs VPS provider egress rates. If cost delta is small and audience global, prefer CDN.
Conclusion: clear decision rules
- Choose cheap VPS when audience is US-centric, traffic is predictable and low to moderate, and the team can maintain origin security and caching rules.
- Choose edge CDN when global performance, operational simplicity, previews, and DDoS protection are priorities.
- Hybrid approach: cheap VPS origin plus Cloudflare (proxy) delivers strong cost/performance balance for many US-focused projects.
Recommended next steps: run the reproducible benchmark plan above with real site traffic patterns, apply content hashing for assets, and adopt selective purge strategies in CI to minimize egress costs.