Cloudflare Pages builds
- Free allowance
- Free plan: 500 builds a month, 1 build at a time, 20 minutes per build.
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- emailno card, no phone
- Binding limit
- volume-quota500 builds a month on Free; 5,000 on Pro; 20,000 on Business
- Evidence
- documented15 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-12-05checked 2026-11-04 (live); stale on 2026-12-05
| Free tier | Free plan: 500 builds a month, 1 build at a time, 20 minutes per build. Pro: 5,000 builds a month and 5 concurrent builds. Business: 20,000 builds a month and 20 concurrent builds unit mixed; metered on unstated; the quota counts builds, not minutes: a one-minute build and a twenty-minute build each use one of the 500; the vocabulary has no builds term for the unit, so mixed stands in |
|---|---|
| Price | none stated |
| Limits |
only GitHub and GitLab repositories connect; a project connected to Git cannot switch to Direct Upload later |
| Binding | volume-quota the 500 monthly builds are spent by pushes and Deploy Hook calls whatever their length, so a busy repository reaches the count before the 20-minute cap matters |
| Identity | email a Cloudflare account opened with an email address and a password, verified by email; a GitHub or GitLab account authorised to Cloudflare for Git builds |
| Egress | not stated for the build container; the output of a build is a Pages deployment |
| Per-object cap | 20 minutes per build |
| Retention | unverified: the limits and build pages state no retention period for builds or build logs |
| Interface | git, rest a push to a connected GitHub or GitLab repository builds and deploys the project; a Deploy Hook is a unique URL that starts a build for one branch on an HTTP POST endpoint: unverified: the Deploy Hook URL is generated per hook in the dashboard and its format is not stated on the page read |
| Tooling | a gVisor container with Ruby, Node.js, Python, PHP and Go preinstalled and versions overridable by environment variable or version file; the user supplies a build command and an output directory |
| Composes with | a 20-minute job on every push or Deploy Hook call, ending in a Pages deployment. An external scheduler calling a Deploy Hook makes it a scheduled job, but each call spends one of the 500 monthly builds. Builds run by an external CI system and uploaded with Wrangler direct upload do not use the Pages build runner; Cloudflare Workers Builds is a separate service with its own record |
| Reliability | unverified: no page read states what happens to a Free account once the 500 monthly builds are used |
| Notes | A Git-driven build service whose job is bound to a Pages deployment: the build command writes an output directory that is deployed. Pro plan price is unverified; no page read states it. A separate Cloudflare service, Workers Builds, offers 3,000 build minutes a month on Free and has its own record. |
| Evidence note | documented every number is quoted from the Cloudflare Pages limits page; no build was run, so CPU, memory and disk of the build container, outbound network access from it and what happens to a build after the 500 monthly builds are spent are unverified |
| Parsed numbers |
|
Evidence 15
| date | source | what it proved |
|---|---|---|
| 2026-11-02 | developers.cloudflare.com/pages/platform/limits/ | Free allows 500 builds a month; Pro 5,000; Business 20,000 |
| 2026-11-02 | developers.cloudflare.com/pages/platform/limits/ | Free runs 1 build at a time; Pro 5 concurrent; Business 20 |
| 2026-11-02 | developers.cloudflare.com/pages/platform/limits/ | a build is terminated after 20 minutes; concurrency is counted per account |
| 2026-11-02 | developers.cloudflare.com/pages/configuration/git-integratio | GitHub and GitLab connect; self-hosted instances of either do not |
| 2026-11-02 | developers.cloudflare.com/pages/configuration/git-integratio | a Git-integrated Pages project cannot later become a Direct Upload project |
| 2026-11-02 | developers.cloudflare.com/pages/configuration/git-integratio | Workers has a separate Git build service, Workers Builds |
| 2026-11-02 | developers.cloudflare.com/pages/configuration/deploy-hooks/ | a Deploy Hook URL starts a new Pages build on an HTTP POST |
| 2026-11-02 | developers.cloudflare.com/pages/configuration/deploy-hooks/ | a Deploy Hook can be called from a scheduler to run builds on a timetable |
| 2026-11-02 | developers.cloudflare.com/pages/configuration/build-image/ | builds run in a gVisor container |
| 2026-11-02 | developers.cloudflare.com/pages/configuration/build-image/ | the build image carries Ruby, Node.js, Python, PHP and Go |
| 2026-11-02 | developers.cloudflare.com/pages/configuration/build-image/ | older build images are retired into the v3 image |
| 2026-11-02 | developers.cloudflare.com/pages/how-to/use-direct-upload-wit | prebuilt assets can be deployed to Pages from an external CI system with Wrangler |
| 2026-11-02 | developers.cloudflare.com/fundamentals/account/create-accoun | the sign-up form asks for an email address and a password |
| 2026-11-04 | developers.cloudflare.com/pages/platform/limits/ | Free allows 500 builds a month |
| 2026-11-04 | probe: https://developers.cloudflare.com/pages/platform/limits/ | the limits page answered HTTP 200 on 2026-11-04 |
Unknown values 1
- egress metered: egress metering was not published