Skip to content


Astro is the tool of choice of The AHA Stack because it is minimal yet full of interesting features.

It gives you the simple basic stuff that you use to build a modern website, like file-based routing, built-in markdown rendering, great templating language.

It’s JavaScript-based, so we end up using a single language, and language mental model, across the entire stack.

If you know another classic Web Application server like Rails, Django, Laravel, or like building your own in Go or whatever, you can use anything you want.

The only thing this tool needs is the ability to handle HTTP responses, communicate with a database if needed, and reply with HTTP partials.

But Astro is JavaScript-centric, makes it super easy to add a more advanced client-side framework on specific pages if you need it. It provides routing, an easy way to handle HTTP requests, and has a very nice templating language that helps us design the HTML using components (not “Web Components”, but components in the React / modern JS framework way: self contained units you can reference as a tag, like <Todos />).

Here is why I really enjoy Astro:

  • Astro is simple to use: if I have to create an entire castle in my head to understand how things work, it’s not going to be a healthy relationship between me and that tool
  • Astro is flexible: I have needs, and the tool should be designed effectively to fulfill my needs, to do what I want (within certain constraints, of course)
  • Astro grows with you: I hate the idea that a tool is limited to “toy apps” and cannot “scale”. But I also hate the idea that a tool should be hard to use right from the start, because “it can scale”. It should be nice to use at a small scale, and also nice to use at (relative) scale (not Facebook’s scale, of course)

Read my post why I use Astro.

See the Astro homepage

Learn Astro on The Valley of Code