The Right Amount of Opinion
For me, what it boils down to is that I feel like Astro brings the right degree of opinion to its framework. It knows that there are widespread preferences for lower-level tooling, and so it leaves options. But it provides a solid framework for implementing those options.
Now, granted, I've only built a few proofs of concept, but these are the five reasons I'm so excited about Astro:
Static-first, with progressive enhancement
Supporting multiple component frameworks
Native markdown support
A foundation for styling
Reduced boilerplate code
Let's take a quick look at each of these ideas.
Astro lets you build your website with modern front-end component frameworks, like React and Vue, but it doesn't assume you want to run JavaScript in the browser.
That's my struggle with frameworks like Gatsby and Next.js. They are super powerful, but they assume interactivity and always include JavaScript files in your built site.
Astro assumes the opposite. It makes you, the developer, tell it when you need interactivity. Otherwise it renders static HTML. That means that even though there is some magic that happens during the build, you are still in control of your HTML code for the most part.