Skip to content
Cloudflare Docs logomark
Cloudflare
Docs
Pages
Navigation menu icon
Open external link
Cloudflare Docs logomark
Cloudflare
Docs
Pages
Dropdown icon
Pages menu
Pages home
Announcement blog post
First look at Cloudflare Pages (video)
Overview
Expand: Get started
Get started
C3
Direct Upload
Git integration
Expand: Framework guides
Framework guides
Deploy a Blazor Site
Deploy a Brunch site
Deploy a Docusaurus site
Deploy a Gatsby site
Deploy a Gridsome site
Deploy a Hexo site
Deploy a Hono site
Deploy a Hugo site
Deploy a Jekyll site
Expand: Deploy a Next.js site
Deploy a Next.js site
Full-stack deployment
Static deployment
Deploy a Nuxt site
Deploy a Pelican site
Deploy a Preact site
Deploy a Qwik site
Deploy a React site
Deploy a Remix site
Deploy a Solid site
Deploy a Sphinx site
Deploy a Svelte site
Deploy a Vite 3 site
Deploy a Vue site
Deploy a VuePress site
Deploy a Zola site
Deploy an Angular site
Deploy an Astro site
Deploy an Elder.js site
Deploy an Eleventy site
Deploy an Ember site
Deploy an MkDocs site
Deploy your site
Expand: Migration guides
Migration guides
Migrating a Jekyll-based site from GitHub Pages
Migrating from Firebase
Migrating from Netlify to Pages
Migrating from Vercel to Pages
Migrating from Workers Sites to Pages
Expand: Configuration
Configuration
Branch build controls
Build caching
Build configuration
Custom domains
Debugging Pages
Deploy Hooks
Early Hints
Git integration
Headers
Language support and tools
Preview deployments
Redirects
REST API
Rollbacks
Serving Pages
Expand: Functions
Functions
Get started
Routing
API reference
Expand: Examples
Examples
A/B testing with middleware
Adding CORS headers
Middleware
Local development
Bindings
TypeScript
Advanced mode
Expand: Pages Plugins
Pages Plugins
Cloudflare Access
Google Chat
GraphQL
hCaptcha
Honeycomb
MailChannels
Sentry
Static Forms
Stytch
Turnstile
Community Plugins
vercel/og
Metrics
Debugging and logging
Pricing
Module support
Smart Placement (beta)
Expand: Tutorials
Tutorials
Add a React form with Formspree
Add an HTML form with Formspree
Build a blog using Nuxt.js and Sanity.io on Cloudflare Pages
Build an API for your front end using Pages Functions
Create an HTML form
Expand: How to
How to
Add a custom domain to a branch
Add custom HTTP headers
Deploy a static WordPress site
Enable Web Analytics
Enable Zaraz
Install private packages
Preview Local Projects with Cloudflare Tunnel
Redirecting *.pages.dev to a Custom Domain
Redirecting www to domain apex
Refactor a Worker to a Pages Function
Set build commands per branch
Use Direct Upload with continuous integration
Use Pages Functions for A/B testing
Expand: Platform
Platform
Limits
Choose a data or storage product
External link icon
Open external link
Changelog
Known issues
Give Feedback
GitHub icon
Edit this page on GitHub
Search icon (depiction of a magnifying glass)
Light theme icon (depiction of a sun)
Dark theme icon (depiction of a moon)
Set theme to dark (⇧+D)
Products
Pages
Functions
Examples
Functions examples
A/B testing with middleware
Adding CORS headers