Back to Home

Getting Curious About Astro (and a Cloudflare Deploy Catch)

#javascript #astro #cloudflare

Getting Curious About Astro (and a Cloudflare Deploy Catch)

I’ve been slowly collecting small reasons to give Astro a proper try: projects that want to be fast by default, pages that don’t need a lot of client-side JavaScript, and the general itch to keep learning new tooling without turning everything into a framework migration saga.

So I built a small blog with it. Nothing huge—just enough to see what the day-to-day feels like.

What I like about Astro so far

Astro hits a nice balance between “simple static site generator” and “modern component-driven framework,” and a few things stood out quickly:

  • Performance-first by default Astro’s island approach makes it natural to ship less JavaScript. You opt into hydration where you actually need it.

  • Great authoring flow for content The Content Collections setup gives you structure (schemas, types) without getting in the way. It’s a good middle ground between raw Markdown chaos and an over-engineered CMS.

  • DX that feels modern but not heavy Vite-based builds are fast, and the project structure stays readable even when you add a few features like RSS.

  • Static output when you want it Generating a fully static dist/ makes deployment predictable and cheap, and it keeps the mental model clean.

Cloudflare Pages integration

Cloudflare Pages is a great match for a static Astro site:

  • Build command: npm run build
  • Output directory: dist

That’s basically it—until you start mixing in Wrangler / Worker-style deployment steps.

The catch we hit: missing Wrangler config

The build itself was green. Astro generated dist/ correctly. But the deployment step failed with an error like:

“Missing entry-point to Worker script or to assets directory”

The reason was simple in hindsight: wrangler deploy needs to know what it should deploy. Without a wrangler.jsonc (or explicit --assets=./dist), Wrangler has no entry point—no Worker script and no assets directory configuration.

The fix was adding a small wrangler.jsonc file to the repo that points Wrangler at the static output:

{
  "name": "gorowicz-dev",
  "compatibility_date": "2026-02-14",
  "assets": {
    "directory": "./dist"
  }
}

After that, the deploy step immediately made sense: build with Astro, upload dist/, done.

Closing thoughts

Astro feels like one of those tools that rewards curiosity—especially if you enjoy static sites that don’t pretend they’re SPAs. I’m still exploring the edges (content patterns, components, and what I want to hydrate), but the core loop is already pleasant: clear structure, fast builds, and a deployment story that stays simple once you understand the moving pieces.

Comments