markmcdermott.io (js, ruby, ...etc) by mark mcdermott

This Blog's Stack

Astro, Tailwind & GitHub Pages

12/02/2024

read time:6 mins

Here is a bit of my thinking when I chose to start this blog:

Requirements

Fast load time

The previous iteration of this blog was on Nuxt Content, running on headless Rails with Postgres on Fly.io and using CircleCI for the CI/CD. I was seeing some slow pageload issues on mobile and I wanted to fix that.

Simple stack

Making small changes in Nuxt/Rails/Fly.io/CircleCI were doable, but I wanted to spend less time on my portfolio site and more time honing my skills.

Small number of pages

For over ten years I’ve been maintaining a personal site with a handful of pages: home, about, projects, blog and contact. It’s never been a massive site, but I wanted it even smaller.

Simple CMS

Over the years I’ve alternated between having my content in my HTML pages and using blog engines like WordPress, Nuxt Content and Netlify’s Decap CMS. I’ve come to prefer my blog content separate from my HTML/CSS/JS and I wanted a fast way to be able to log in quickly and write a new post, sometimes from my phone. Logging into Decap was a pain - I usually had to log into both the CMS and netlify and it just felt a bit hacky or unfinished.

Markdown blog posts

I’ve recently grown to like writing markdown. I initally was using it for my GitHub readme files. Then I started using markdown for blogging with Nuxt Content. I enjoy using “front-matter” at the top of the post for the title, date, etc and then just writing the post in markdown below that. It gives me that “I’m writing prose, not code” feeling that a CMS and WYSIWYG give, but there’s no need to log into a separate CMS and no clunky blogging software to deal with.

Utility-first CSS

I’d avoided Tailwind for a long time even though I knew it was more scalable and sped up development time. I am a bit of a purist in my afterhours and I always thought Tailwind made markup look really ugly. For awhile now, I’ve gone the opposite direction in my hobby projects and used semantic PicoCSS in its classless form. I always thought that code looked really beautiful. But I knew it was time to bite the bullet and to force myself to learn tailwind.

Technology considered

I considered a few different technologies for this blog:

Solutions

Tradeoffs

Conclusion

I’ve been running this static, GitHub-based approach to blogging for awhile now and it’s been my favorite yet. I love the pageload speed, the speed of posting and the nimble tech stack. It helps keep all this fun.