Direct Upload: A New Way to Deploy on Cloudflare Pages
Cloudflare Pages has always leaned on its built-in continuous integration (CI) pipeline, which automatically builds and deploys sites after each push to a connected GitHub or GitLab repository. That integration is powerful, but it assumes your code lives in one of those two providers. For teams using self-hosted repositories, SVN, Mercurial, or other version control systems, the mainstream Pages workflow simply wasn't available.
To close that gap, Cloudflare Pages now supports direct uploads. You can push pre-built assets straight to Pages without connecting a git repository at all, let alone relying on Pages' default CI. The deployment pipeline you use to produce those assets is entirely up to you.
Bringing Your Own Build Artifacts
With direct uploads, you skip the automatic build step entirely. You compile your site with whatever tooling you prefer — whether that's a third-party CI service like GitHub Actions or CircleCI, a custom script, or nothing at all — and then hand the output directory over to Pages. Pages handles the rest: distributing your files across Cloudflare's global network and giving you a live URL in seconds.
There are two ways to make that hand-off happen:
- Push the files using the Wrangler CLI
- Drag and drop a folder or zip file into the Pages dashboard
Deploying from the Command Line
If you're already comfortable with Wrangler, the CLI route is the fastest way to incorporate direct uploads into a scripted or automated workflow. Once Wrangler is installed and authenticated, one command will create a new project and push your first deployment:
npx wrangler pages publish <directory>
This approach slots neatly into existing CI pipelines: your chosen tool builds the site, then invokes Wrangler to publish the resulting directory to Pages. It's a good fit for teams that want to keep their build logic in their own CI configuration rather than letting Pages manage it.
Deploying from the Dashboard
For quick experiments or static sites that don't need a full CI setup, the drag-and-drop path removes all configuration overhead. You point your browser at the Pages dashboard, select either a folder of assets or a zip archive, and the project is deployed to Cloudflare's network across more than 270 cities.
This method is deliberately low-friction. There's no repository to link, no build command to define, and no environment variables to configure up front. The site goes live as soon as the upload completes.
What Direct Uploads Unlock
Direct uploads don't strip away the features you'd get with a git-connected Pages project. Deployments made this way still support:
- Unique preview URLs for each deployment
- Integration with Cloudflare Workers, Access, and Web Analytics
- Custom redirects and headers
More importantly, the workflow opens up deployment patterns that were previously impractical. You can design your own CI workflow from scratch, pick the CI tool you already use internally, accommodate monorepo layouts that don't map cleanly to a single build command, or embed custom logic into your build process that Pages' simplified pipeline couldn't express.
A Path Off Workers Sites
The concept of publishing assets directly to Cloudflare's network will look familiar to anyone who has used Workers Sites. Pages direct uploads offer a comparable level of workflow freedom, but with the added benefit of Pages' project management features: production and preview environment separation, change tracking, and a dashboard interface for managing deployments.
Existing Workers Sites users who want to move over can follow Cloudflare's migration tutorial, which covers how to transition a project to Pages direct uploads. After that, deployments are handled the same way as with git-connected projects.
Full technical details, including the Wrangler command reference and dashboard instructions, are available in the Pages direct upload documentation.



