New Jul 10, 2026

Astro is fine I guess

More Front-end Bloggers All from dbushell.com (blog) View Astro is fine I guess on dbushell.com

When I’m not fighting WordPress I deliver static HTML or the occasional JavaScript framework integration. For personal projects I have ā€˜fun’ with my own static site generator.

This week was a side quest (soon to be main quest) to build my new company website. We’re talking proper business here so I can’t be messing about. I figured an off the shelf SSG would be most suitable.

I asked the socials, ā€œ11ty or Astro?ā€ Both are popular but Astro had the edge. I gave Astro an early spin back in 2022 and found it slow. Maybe it’s good now?

The install

I ran pnpm create with minimum release age to avoid immediately getting pwned.

I selected Astro’s ā€œUse minimal (empty) templateā€ option and it generated both an AGENTS.md and CLAUDE.md file — are you f — deep breaths, don’t fall for the rage bait.

I code in a modern editor so I installed the recommended Astro extension. At first I struggled with Zed recognising HTML.

Zed editor error confusing HTML elements with JSX. The error says: `JSX element implicitly has type 'any' because no interface 'JSX.IntrinsicElements' exists. (ts 7026)`

I discovered a restart temporarily fixed the issue, but I guess I restarted one time too many because now the Astro LSP is completely broken.

Zed editor error: 'Failed to run astro-language-server.'

No modern comforts for me then. At least I can look at HTML without the red squigglies.

I know what you’re going to say, ā€œDave bro, you’re inflicting this pain upon yourself! Just write HTML!ā€ And I should. I just want native no-framework HTML includes, you know? Can you imagine the civilisation we’d live in if that could happen?

The docs are nice

I persevered and got my templates built with minimal fuss. I added a markdown collection and got the blog part blogging. It’s obvious that people use Astro to build real websites because all my ā€œhow do Iā€ questions had an answer in the documentation.

Fred from Scooby Doo unmasks a ghost hooded villian captioned '.ASTRO' saying 'Let's see who you really are!' to reveal the React logo and '.JSX' underneath.

I’ve been forced to deploy way too many ā€œReact spacesā€ in my templates because Astro’s whitespace treatment is a mystery. I don’t need many components so I haven’t gone deep on Astro vs JSX. My site has zero JavaScript on the front-end. I plan to keep it that way.

Edit: Christian Niklas on Mastodon shared a link to a recent Astro update where they added a compressHTML: "jsx" option that defaults to no longer ā€œfollowing HTML rules.ā€ Umm… okay. Set this to true or false if you’re building a website? I set it to false. Minifying whitespace is over-optimisation.

I’ll keep it around

Astro has got the job done, despite the developer experience being broken out of the box. I dread to think what graveyard of dotfiles is installed if I choose a non-minimal start. I can easily de-Astro my templates should I need to. Right now Astro is solving the right problems and the issues are but a nuisance.

Final conclusion: Astro is fine I guess. I’m not convinced Cloudflare’s acquisition is a good thing, considering their record for performative slop. I’ve lost my enthusiasm for DX and tooling to be honest. Even my own SSG experiments are collecting dust. I’d call the ecosystem a lost cause if I was being dramatic.

I just try to avoid the worst of it and care about the end product: shipping a damn fine website! Which I can’t do because I’ve got more businessing to business before this particular site sets sail. Maybe in a few months? It’s looking awesome on localhost though.


Thanks for reading! Follow me on Mastodon and Bluesky. Subscribe to my Blog and Notes or Combined feeds.

Scroll to top