Astro's blasting off again

Issue #348.December 5, 2024.2 Minute read.
Bytes

Today’s issue: Feeling judged about your CSS choices, AI’s 70% problem, and reaffirming my personal beliefs.

Welcome to #348.


Eyeballs logo

The Main Thing

Baby Yoda sneaking onto a ship

When you sneak a bunch of new features into a major release

Astro’s blasting off again

Astro 5.0 just launched on Tuesday, and you might be wondering – what’s changed since we wrote about the v5 beta back in September?

Well, Tupperware had to file for bankruptcy, so my mom is gonna have to find a new way to get a healthy serving of microplastics in her diet. I think we also had an election, and oh wait – you meant what’s new with Astro.

It turns out they’ve been making moves too. As you’d expect, this release stabilizes all the new core APIs from the v5 beta like Content Layer and Server Islands. It also simplifies their rendering modes down to two options: server, which defaults everything to SSR, and static, which now supports hybrid rendering.

But v5 also introduces some brand new features that should make the framework even more Astro-tastic:

  • Vite 6 support: This update makes it easier for developers to create Astro Integrations with the new Environment API. Impressive, considering Vite 6 came out less than 2 weeks ago.

  • Experimental Responsive Images: v5 comes with a bunch of experimental image optimization tools that can do things like automate srcset creation for responsive images and crop images at build time to save bytes.

  • Experimental SVG Component: You can now import SVG assets, and Astro will automatically turn them into components you can pass attributes to. It can even create an SVG sprite if you don’t want the SVG to be inlined on the page.

Bottom Line: At this point, Astro has clearly established itself as the go-to solution for content sites. But other frameworks might want to watch out, because v5 makes it clear that Astro is coming for more.

        

Convex logo

Our Friends
(With Benefits)

Rasputin smiling and pointing

When you don't go outside for two weeks, but your app is ready for primetime.

Convex now has a Startup Program 👀

So you can apply to get one year free on their Professional Plan, with no seat fees and 30% off all usage-based fees.

It’s a no-brainer, considering Convex’s all-in-one backend platform gives you everything you need to go from idea to product in weeks:

  • Queries you can write as TypeScript that are automatically cached and realtime

  • Modular TypeScript components that make it easy af to build scalable backend features

  • Actions, built-in auth, search, scheduling, and lots more

One startup co-founder said that Convex, “simplified our backend operations, allowing our team to focus on delivering value to our customers.” It can probably do the same for you.

Apply for the Startup Program here.


Spot the Bug logo

Spot the Bug

Sponsored by Sentry

Two of their senior engineers are hosting a free livestream next week to demo the new AI tools they built and show how they can help you write cleaner code.

class Queue {
  constructor() {
    this.list = [];
    this.length = 0;
  }

  enqueue(value) {
    this.length++;
    this.list.push(value);
  }

  dequeue() {
    if (this.length === 0) return;
    this.length--;
    return this.list.shift();
  }

  peek() {
    return this.list[this.list.length - 1];
  }
}

Cool Bits logo

Cool Bits

  1. The haters said we wouldn’t see it in our lifetimes, but bitcoin just hit React 19 officially just arrived in all its glory. Full story on Monday.

  2. Rainforest QA just released The State of Software Test Automation in the Age of AI. It surveyed 625 developers to answer the big question on everyone’s mind – Is AI *actually* speeding up our testing workflows? [sponsored]

  3. Addy Osmani wrote an article called The 70% problem: Hard truths about AI-assisted coding.

  4. Stanko just released a native dual-range input, along with a blog post about how it works.

  5. The Chrome team just released CSS Wrapped 2024. Hopefully it won’t make you feel as judged as Spotify Wrapped does.

  6. Alex Anderson wrote about sharing types and code between the server and client.

  7. Take the brand new Developer Nation survey, and all your wildest dreams will come true: they donate to charity, you get a virtual goodie bag full of helpful resources, and a chance to win a RODE NT-USB Mini Microphone, an Imperial Star Destroyer Lego set, and lots more. [sponsored]

  8. Sure, Heroku might’ve killed their free plan, but they also just ran a bunch of ads on the Vegas sphere for a mere $450k per day, so who’s laughing now?

  9. kurtextrem wrote an in-depth article about patterns you can use to improve INP when using React.

  10. Steve wrote about Why AI Is Making Dev Skills More Valuable, Not Less. Since it reaffirms the best outcome for me personally, I choose to agree.


Spot the Bug logo

Spot the Bug: Solution

Sponsored by Sentry

Since this is a queue (aka: first in, first out), the peek method should return the first element in the list, not the last.

class Queue {
  constructor() {
    this.list = [];
    this.length = 0;
  }

  enqueue(value) {
    this.length++;
    this.list.push(value);
  }

  dequeue() {
    if (this.length === 0) return;
    this.length--;
    return this.list.shift();
  }

  peek() {
    return this.list[0];
  }
}