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.