← All columns
WORKERS2026.07.242 min read

Serving a static blog from Cloudflare Workers

Astro static output, Workers Builds and local validation: how this repository is organised.

The GameStudio integration uses Astro for static HTML and React islands for interactive demos. The first Cloudflare connection and production URL are configured in the dashboard.

Serve the static output

Astro uses output: 'static' and writes to dist. This static site does not need the Cloudflare adapter, a session KV namespace, automatic image-service settings or a redirect to generated Wrangler configuration.

The assets configuration in wrangler.jsonc is:

{
  "name": "susanlab",
  "compatibility_date": "2026-08-10",
  "assets": {
    "directory": "./dist",
    "not_found_handling": "404-page"
  }
}

Choose a Worker name that matches the Cloudflare project. No Worker entry point or nodejs_compat flag is required for this static configuration. The contact form is explicitly labelled as a demo before input and does not send messages.

One publication path

Keep the source in its own private GitHub repository. Connect Workers Builds to production branch main, with root /, build command npm run build and deploy command npx wrangler deploy.

GitHub Actions validates the build. Workers Builds handles publication. A successful push does not prove a successful deployment; check both the build and publication result in Cloudflare after pushing.

Validate locally

Run npm ci, edit with npm run dev, then check the production output with npm run build and npm run preview. The optional npm run deploy:check runs Wrangler in dry-run mode without publishing.

Check Japanese and English articles, language-switch fallbacks, the 404 page, RSS and draft exclusion. Canonical URLs, Open Graph metadata and RSS share the configured production URL.

Exported models, motions and audio include their dependencies and required credits inside the site repository. Shared code is stored as source snapshots. A standalone clone can therefore build without paths outside this repository.

Keep every asset within 25MiB and validate the limit before placement and publication. Compress, convert or split larger files.

References: Workers Builds configuration, Workers Static Assets, Astro Cloudflare integration.