Astro

| View comments on Hacker News

It’s incredibly easy to find poorly made single-page applications (SPA) today. These applications break user expectations by not acting like standard webpages. The page title doesn’t update on navigation, the back/forward buttons don’t work, the scroll position is not saved, and refreshing the page causes surprising behavior.

A particularly bad site might be poorly optimized and take a while to load on a slow connection or perform poorly when rendered client-side.

SPAs tend to be written with libraries like React and Vue. They are great for developer productivity, and I find them a joy to use. What I don’t like is the amount of work that goes into making them feel like first-class citizens of the web. You have the handle the above, and so much more! What about SEO or users that disable JavaScript?

Many sites do need the interactivity that these libraries provide, but there are plenty that don’t. Content-heavy sites, like this one, are mostly read and have little client-side interaction that would require JavaScript. You could write the site with plain HTML/CSS, but you lose the excellent tooling that React provides. Alternatives include server-side rendering with a host like Vercel or static site generation with heavy software like Gatsby.

I was determined not to compromise. I didn’t want to buy into Vercel and certainly didn’t want a super complicated build process with a bunch of buy-in.

Enter Astro.

It’s a perfect fit. By default, it outputs sites with zero JavaScript. Using familiar React-ish syntax, you can pass props or call JS at compile time in your components. You get the development speed up while also providing sites that perform great and respect your users.

The feature list is jam-packed, and everything seems to work. The documentation is thorough, and it is a joy to use.

I migrated this blog over to Astro in a couple of days, and I was able to add a bunch of new functionality with little effort, such as generated Open Graph images and an RSS feed that updates automatically.

The site now has zero client-side JavaScript and does not need a server beyond static file hosting. The code is pretty similar to what it was before.

I would highly recommend checking out Astro. I’m only scratching the surface of what you can do with it.

Recent posts from blogs that I like

Critics against art: How John Singer Sargent was erased

How two members of the Bloomsbury Group battled with John Singer Sargent and destroyed his reputation for nearly 50 years, and reshaped 20th century painting.

via The Eclectic Light Company

Human-AI partnerships are for alignment, not capability

It’s common to compare the current AI takeover of software engineering to the rise of AI in chess. Chess AIs went from much weaker than serious players to much stronger than even the strongest humans. Between those points, there was a middle period dominated by “centaurs”: human-AI partnerships that...

via Sean Goedecke

Replacing the old battery on rechargeable bike lights

Hello! Recently I needed bike lights for my bike. And I remembered that I already had rechargeable bike lights that I bought ten years ago, that I hadn’t tried in a long time. I tried to recharge them, but after fully charging them, they only worked for maybe 5 minutes before they turned off again. ...

via Julia Evans