Things I've worked on at Astro in 2023

Turns out images are more complicated than I thought

Dec 23, 2023 ยท programming, astro

I've been working at FaviconAstro for close to two years now. After spending most of my time during the first year on our language server, I've been working on a variety of things since then. Here's a quick overview of some of the things I've worked on in 2023.

Don't know what Astro is? Check out our FaviconWhy Astro? page.

Astro 2.0

Most of the work on Faviconthis 2.0 release was done in 2022, but still, it shipped in 2023, so it counts! In this release, I worked on improving the entire experience around errors in Astro.

I added Favicona new error overlay (designed by FaviconMark Peck), I rewrote all the error messages and generally made sure people are having a great experience, even when things go wrong.

A proper image story for Astro

Have you ever seen a content-based website without images? Yeah, me neither. Images are a core part of the web, especially for content websites, as such it was obvious that Astro needed a proper way to use images in a performant fashion. Funnily enough, FaviconI made one of the first attempts at this only a month or so after discovering Astro, before joining the company, so I had a pretty good idea of what I wanted to do and was a natural fit in the team for this task.

We already had a semi-first party solution for image, @astrojs/image, but you had to install it separately and it was a bit clunky to use, suffered from poor types, documentation and in general, wasn't kept up to date with the rest of Astro, so it had many bugs when using the numerous new features we added to Astro since its creation. It was time to replace it with something directly integrated into Astro, and so astro:assets was born.

Houston, the Astro mascot, in a factory processing images

Houston is singlehandly optimizing all your images

Now that everything is done, shipped, and used by people, I can say I'm pretty happy with the result and I think it's a great natural addition to Astro! For more information on this effort, you can read the following blog post: FaviconBetter Images in Astro.

Language server 1.0 and 2.0

The Astro language server is my pride and joy, my baby, the thing I've spent the most time on at Astro. It's a TypeScript language server that powers the Astro VSCode extension, and provides all the features you'd expect to have in a code editor.

While, as said previously, it wasn't at all the focus for me this year, I nonetheless shipped a few things:

1.0 - New Parser

We shipped the 1.0 version of the language server in May, which was a big milestone considering it was in beta since November 2022.

This release was the result of many months of mostly sending my coworker FaviconNate Moore to what quickly became known as the "sourcemaps mines" to fix all the sourcemap-related bugs that were found in the new parser, powered by the FaviconAstro compiler.

It was a long and painful process, but we got there in the end, and the new parser is a lot better than the old one, so it was worth it.

2.0 - Volar Port

The 2.0 version of the language server was a big one. It was a complete rewrite of the language server, using FaviconVolar, a project I became a core maintainer of in 2022. Volar is a framework for building language servers that takes care of a lot of the boilerplate and tricky parts of building a language server, so it was a pretty natural fit for this project.

For more information on this effort, you can read the following blog post: FaviconAstro + Volar = ๐Ÿ’–.

Dev Toolbar

Inspired by my time working on games, I've always been a fan of being able to extend the authoring experience in dev tools. Much like you can make inspectors and custom windows for your specific video game project in Unity, I wanted there to be an extensible way to add new features to the Astro authoring experience.

And so, I pitched and worked on the Dev Toolbar, an extensible toolbar that shows up in the browser in development mode. It's quite similar to the Chrome DevTools, but specific to Astro and your project.

Glamour shot of the Astro Dev Toolbar

I'm quite happy with the result, and I think it's a great addition to Astro. For more information on this, you can read this post: FaviconThe Astro Dev Toolbar.

What's next?

2024 is so far looking to be mostly shaped by our newest feature, called Astro DB, which is a cool way to add a database, either local or remote (through our hosted service) to your project. I pitched the initial idea for this, though I did not end up working on it much since I was busy with the Dev Toolbar. The team did an incredible job making it a reality.

Most likely that I will be contributing to it throughout 2024, spliting my time between that, the dev toolbar and the language server, we'll see!

Toggle mobile menu