Cloud Parts

Cloudflare Pages

Git-connected hosting for static and full-stack sites: every push is built and deployed to Cloudflare’s CDN with its own preview URL, and a functions/ folder becomes Workers behind the site. Cloudflare now tells new projects to use Workers instead.

What it is
CDNs
Type
Commercial product
License
Proprietary
Facts checked
12 October 2026

What it is

You connect a GitHub or GitLab repository, pick a framework preset or build command, and Pages builds every push (up to 20 minutes per build, 500 builds a month on the Free plan) and uploads the output to Cloudflare’s network. The production branch updates <project>.pages.dev and any custom domains; every other branch and pull request gets its own preview URL, posted back to the pull request, and any deployment can be rolled back instantly. Assets stay in the CDN cache, including Tiered Cache, until the next deployment, and requests for them are free and unlimited. _headers and _redirects files set headers and up to 2,100 redirects without code, and a missing top-level 404.html turns on single-page-app routing.

Pages Functions add a backend: a file such as functions/api/users/[id].ts exporting onRequest becomes a route, running as a Worker with the same bindings to KV, D1, R2 and Workers AI and billed as Workers requests. The catch is strategic. Since Workers gained free static assets, framework support and Git builds in 2024 and 2025, Cloudflare has said Pages “will continue to be supported” but that all its investment and feature work goes to Workers; the Pages docs open with “Start new projects with Workers” and link a migration guide.

Why teams pick it

  • Git push to deploy with no CI to configure: builds, status checks and a preview URL for every branch and pull request
  • Static asset requests are free and unlimited, served from Cloudflare’s cache until the next deploy
  • Unlimited preview deployments and instant rollbacks to any earlier production deployment
  • Custom domains can live outside Cloudflare-managed zones (via CNAME), which Workers doesn’t support

Watch out for

  • No new features: Cloudflare puts its investment into Workers, which already has things Pages lacks, such as gradual deployments, Cron Triggers, queue consumers, Workers Logs and the Vite plugin
  • Durable Objects need a separate Worker, and Functions can’t consume queues or use Cron Triggers
  • 25 MiB per file, 20,000 files per site on Free (100,000 on paid plans) and 100 projects per account, rarely increased
  • Builds time out after 20 minutes, and the Free plan runs one build at a time

Alternatives

What all cdns have in common →

How it fits with other technologies

A Pages Function: functions/api/users/[id].ts becomes /api/users/:id · ts

interface Env {
  USERS: KVNamespace; // binding set in the Pages project settings or wrangler config
}

export const onRequestGet: PagesFunction<Env> = async (context) => {
  const id = context.params.id as string;
  const user = await context.env.USERS.get(`user:${id}`, "json");
  if (!user) return new Response("Not found", { status: 404 });
  return Response.json(user);
};

See it in a real stack

No architecture uses Cloudflare Pages yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2020–2025

In 2020, a frontend developer who wanted a site online had to stitch together hosting and a CI system configured in YAML, waiting minutes per build and rerunning the same build hoping for a different result. On December 17, 2020, Rita Kozlov announced Cloudflare Pages as “a fast, secure and free way to build and host your JAMstack sites”: select a repository and framework, git push, and Cloudflare builds and deploys to its network, with a unique preview URL for each commit and unlimited collaborators for free. It became generally available on April 12, 2021, after thousands of developers deployed over ten thousand projects in the beta.

The launch post already promised a backend built on Workers. Pages Functions followed in November 2021, routing files in a functions/ folder to what are, in Cloudflare’s words, Workers “in disguise”, and became generally available in November 2022. But the two products kept growing into each other, and in May 2023 Cloudflare announced it would converge Pages and Workers to end the “decision paralysis” of choosing between them.

The convergence happened inside Workers. Static assets on Workers entered beta in September 2024, and in April 2025 Cloudflare added _headers and _redirects, Git builds and preview URLs to Workers, telling developers to start with Workers: Pages would stay supported, but new investment would go to Workers. The Pages docs now carry the same advice and a migration guide.

Why it’s built this way

Tie deployment to Git
Instead of asking frontend developers to configure CI, Pages builds and deploys on every push, so their existing workflow is the deployment pipeline.
A preview URL for every commit
Reviewers, designers and product managers can look at a running version of a change without pulling the branch and running it locally.
Functions as Workers in disguise
Rather than build a second compute platform, Pages reused Workers for its backend, so Functions get the same runtime, scale and bindings.

Timeline

  1. 2020

    Announced on December 17 as free Jamstack hosting with Git builds and preview URLs

  2. 2021

    Generally available on April 12

  3. 2021

    Pages goes full stack with Functions (beta) and GitLab support in November

  4. 2022

    Pages Functions generally available in November

  5. 2023

    Cloudflare announces Pages and Workers will converge, in May

  6. 2025

    Workers gains Pages’ features; Cloudflare says to start new projects on Workers

Sources10 · facts checked 12 October 2026

Improve this page on GitHub