Deploying Astro to Cloudflare Pages Without the Adapter
If you try to deploy an Astro site to Cloudflare Pages using @astrojs/cloudflare v13+ with wrangler v4, you’ll hit this:
The name 'ASSETS' is reserved in Pages projects.
The adapter generates a wrangler config with assets: { binding: "ASSETS" }, which conflicts with a reserved name in Pages.
The fix
Don’t use the adapter. If your site is static (no SSR), you don’t need it:
// astro.config.mjs
import { defineConfig } from 'astro/config';
export default defineConfig({});
Then deploy with:
astro build && wrangler pages deploy dist/
That’s it. No adapter, no generated wrangler configs, no binding conflicts. Cloudflare Pages handles static assets natively.
When you DO need the adapter
Only if you’re using SSR (server-side rendering) with Cloudflare Workers. For static sites deployed to Pages, it’s just overhead and bugs.