← Back to blog Infra

Why we deploy on Cloudflare (and not AWS).

On this page · 8 sections

When we deliver an Astro site, it is hosted on Cloudflare. Not on a shared host, not on AWS, not on a VPS someone has to maintain. On Cloudflare Pages, with automatic deployment from GitHub.

This choice is not arbitrary. It is the result of a methodical comparison — price, performance, simplicity, long-term viability.

What you will learn

How static site hosting works, why Cloudflare is different from traditional hosts, and what this concretely means for your site — in speed, cost, and maintenance.

What “hosting a site” means in 2026

Hosting a WordPress site means renting a server. That server runs PHP, manages a MySQL database, and rebuilds every page on every visit. It must be maintained, updated, and secured. It is a fixed monthly cost, regardless of traffic.

Hosting a static site (Astro, Hugo, Eleventy) is different. The site is built once — at deployment time. The result is a folder of HTML, CSS, JavaScript, and image files. Those files are distributed across a network of servers (CDN) and served directly to visitors. No server to maintain. No database. No PHP.

The question is no longer “which server to rent” but “which CDN to use”.

Why Cloudflare, not the others

There are four serious options for hosting a static site in 2026: Cloudflare Pages, Netlify, Vercel, and AWS Amplify. Here is the honest comparison:

CriterionCloudflare PagesNetlifyVercelAWS Amplify
Free planYesYesYes (non-commercial)Yes (limited)
Free bandwidthUnlimited100 GB/mo100 GB/mo15 GB/mo
Paid plan$5/mo$19/mo$20/user/moVariable
Overage feesNone$40-55/100 GB$40-55/100 GBVariable
Points of presence330+ cities~20 regions~20 regions~30 regions
DDoS protectionIncludedBasicBasicVia AWS Shield

The table speaks for itself. But the two most important points deserve elaboration.

Unlimited bandwidth, no surprises

This is the point that makes the difference day to day. On Cloudflare, bandwidth is unlimited on the free plan. No meter, no overage, no surprise bill.

On Netlify and Vercel, the free plan includes 100 GB of bandwidth per month. That sounds like a lot — until a blog post goes viral, an ad campaign drives traffic, or your images are a bit heavy. Exceeding the quota costs between $40 and $55 per additional 100 GB.

A business site with 50,000 visits per month and optimised images uses roughly 15 to 25 GB of bandwidth. On Cloudflare, that is free. On Netlify, that is free. On Vercel, that is free. The difference appears when traffic doubles — and it always doubles at the worst time.

Static hosting comparison, 2026 data.
The egress fee trap

AWS charges for outbound traffic (egress) on all its services. If your Amplify site serves 500 GB of data in a month, you pay for the excess. This is AWS’s business model — and it is why cloud bills are unpredictable. Cloudflare does not charge for egress. Full stop.

330 cities, not 20 regions

Cloudflare has servers in over 330 cities across 125 countries. When a visitor loads your site, files are served from the nearest server — not from a datacenter in Virginia or Frankfurt.

In practice: a visitor in Lyon gets your site from a server in Lyon (or Paris). A visitor in Montreal gets it from Montreal. On the sites we deploy, the Time to First Byte (TTFB) measured via Cloudflare Radar is under 50 milliseconds for the vast majority of visitors.

Competitors (Netlify, Vercel) have around twenty regions. That is sufficient for a North American or European audience, but it shows for a global one — and it shows in Core Web Vitals.

What happens when you publish a post

Here is the full pipeline, from the moment you click “Publish” in Decap CMS to the site going live:

01
Publish

You click "Publish" in Decap CMS. The content is merged into the main branch on GitHub.

02
Build

Cloudflare detects the change on GitHub. It runs the Astro build — generating HTML, optimising images, producing sitemaps.

03
Deploy

The generated files are distributed across 330+ Cloudflare servers in seconds.

04
Live

Your post is accessible worldwide, served from the server nearest to each visitor.

Fig. 1 — The deployment pipeline, from publication to going live.

Total time: between 30 seconds and 2 minutes. No FTP, no manual deployment, no risk of breaking anything.

Instant rollback

If a deployment causes problems, Cloudflare keeps a history of every version. One click to revert to the previous version. On a traditional WordPress hosting setup, rolling back after a broken update can take hours.

Security included, not optional

With traditional WordPress hosting, security is your responsibility: core updates, plugin updates, SSL certificate, firewall, brute-force protection, backups. Many people pay for a security plugin (Wordfence, Sucuri) between EUR 100 and 300/year to handle all of this.

With Cloudflare Pages:

  • SSL/TLS is automatic and free
  • DDoS protection is included on all plans
  • Web Application Firewall (WAF) is available
  • No server to protect — there is no PHP, no database, no attack surface

A static site has no login form to brute-force, no /wp-admin to protect, no vulnerable plugin to exploit. Security by architecture is more reliable than security by plugins.

Astro + Cloudflare: a natural convergence

In January 2026, Cloudflare acquired Astro (the company behind the framework). The Astro team joined Cloudflare. The framework remains open source and MIT-licensed.

What this changes for you:

  • The integration between Astro and Cloudflare is maintained by the same team
  • Performance optimisations are a priority
  • The long-term viability of the Astro + Cloudflare combination is assured

What it does not change:

  • Astro still works with Netlify, Vercel, or any other host
  • You are not locked into a proprietary stack
  • Your site code is yours, on your GitHub
Lock-in is when you cannot leave

Some hosts make migration difficult (data stored in proprietary formats, features that only work on their platform). With Astro + Cloudflare, your site is a folder of files on GitHub. You can deploy it elsewhere in 5 minutes. The day a better host appears, you switch — without rebuilding the site.

What it costs in practice

For a business site or company blog with normal traffic (up to 100,000 visits per month):

ItemMonthly cost
Cloudflare Pages hostingEUR 0 (Free plan)
Domain name~EUR 1/mo (EUR 12/yr)
SSL certificateEUR 0 (included)
CDNEUR 0 (included)
DDoS protectionEUR 0 (included)
Total~EUR 1/mo

Compare with traditional WordPress hosting: EUR 10 to 30/mo for the host, EUR 5 to 15/mo for premium plugins, EUR 5 to 20/mo for maintenance. Between EUR 20 and 65/mo — for a similar visitor experience, with more maintenance on the owner’s side.


The choice of hosting is not a technical detail. It determines your site’s speed, security, reliability, and your monthly bill. If you want to see what your site would look like on this stack, the configurator gives you a price in 2 minutes.

Reading is good. Building is better.