This month is my 8-year an­niver­sary with sta­tic site gen­er­a­tors. I’m not us­ing Jekyll any­more, so I don’t have to buy a gift, right?

The sta­tic site hot­ness right now is Astro, and it de­serves the at­ten­tion. The pro­gres­sion from 11ty et al. is big enough to war­rant a 3.0” moniker (writing HTML man­u­ally would be 1.0 and Jekyll un­til now is 2.0). I pre­dict React and Vue at least will de­velop sim­i­lar of­fer­ings (although maybe they think Next/Nuxt is close enough).

To learn Astro, I re­turned to my fa­vorite tech­nol­ogy learn­ing method: cre­ate a dead­line, cre­ate a pro­ject. The dead­line was a Lunch and Learn at work, the pro­ject a fan­tasy foot­ball stats re­port demo. Check out the re­sult­ing slide deck and code.

Astro is good

This is how I want to build web­sites. It’s the Rule of Least Power in pro­ject form. It’s pro­gres­sive en­hance­ment baked into a frame­work. My per­sonal pro­jects are al­most com­pletely sta­tic…al­most. JavaScript in­evitably creeps in, and that’s now okay.

Vue sold me on the com­po­nent model. Grouping code by fea­ture in­stead of file type makes the pro­ject eas­ier to un­der­stand, which is more main­tain­able.

Almost every­thing feels in­tu­itive (two ex­cep­tions, keep read­ing).

It’s not fin­ished

Now in my thir­ties, with three lit­tle girls and a fourth im­mi­nent, I’m too old for beta soft­ware.

I im­ple­mented my Collections demo page three times: once based on the docs, the sec­ond time based on a blog post linked from a Github is­sue, and the third time based on the docs again be­cause that was ac­tu­ally the new cor­rect syn­tax. Then the day I gave my pre­sen­ta­tion, Collections were scrapped and re­placed with Dynamic Paths. Which looks good! But could pos­si­bly change again.

I also could­n’t get com­po­nents to work with the few chart li­braries I’m au­di­tion­ing (tune in this fall for Koser’s Next Top JavaScript Chart Library”!). That one is prob­a­bly my fault. I thought I could slap on a client:load at­tribute and al­ways have ac­cess to document, but I must be get­ting con­fused some­where in the chain of:

JS browser mod­ule → node pack­age → Astro com­po­nent → hy­drated Astro com­po­nent

Last, when I tried to de­ploy the demo to Netlify, it failed. Probably eas­ily fixed, but since I’m aban­don­ing the pro­ject for now, not worth the time.

set­Time­out(use­Astro, forNow);

Those aren’t real neg­a­tives, just neg­a­tives for me, to­day. Building soft­ware is it­er­a­tive and Astro will be bet­ter for the changes. Heck, ten years ago when I had free time to spare, it would­n’t have been a big deal to me. Now I just want to use your prod­uct.

I won’t be rewrit­ing any ex­ist­ing pro­jects in Astro for now (like Robin did and re­gret­ted). But I’ll be ready, when Astro (or one of the cur­rent or fu­ture com­peti­tors) is ready.