Originally posted on boogerbuttcheeks.com
Astro Micro is an open source theme I made for Astro. It’s a fork of Mark Horn’s theme Astro Nano. It adds features like search with Pagefind, comments with Giscus, and more.
For a full list of changes, see this blog post.
At this time Astro Micro is at 162 stars on GitHub and is by far my most successful side project. Recently someone liked it so much they made a Next.js version of it! Here are a few reasons why I think Micro did well, and also some takeaways from the project as a whole.
Forking Nano
Reading through Nano’s code gave me many ideas and tricks that I’ve incorporated (copied!) in to my recent projects. For example, I now use a BaseHead
component that I slot into my header
tags. That’s how the Barebones theme uses dynamic Open Graph images with fallbacks.
Mark’s minimal, zero framework philosophy is something I tried to emulate in Micro. That’s why I chose to use Pagefind and Giscus — two lightweight and modular packages that use vanilla JavaScript.
Small Changes Add Up
When you look at the added features one by one, each change isn’t particularly meaningful… but together they make the website that much more fun to use.
Some of my favourite changes:
- Enhanced focus styles
- Indicating the active theme
- Separate syntax highlighting themes for light and dark modes
- Copy buttons on code blocks
- Geist Sans and Geist Mono
All of these add up to make a more cohesive experience for the user.
Book Cover Judging
Astro Micro has a sick thumbnail and that helped to standout in the Astro theme store. I also took the time to create informative, pleasing descriptions and README’s. It makes the product appear more professional and trustworthy.
Fun fact: on the thumbnail “Tags” are listed as a feature. I never ended up implementing them. A little misleading, I know…
Open Source & Contributions
The open source community helped make Micro so much better by filing new issues, opening pull requests, and providing feedback. It’s really humbling to see strangers get together and collaborate to make the project better for everyone.