Migrating from Hugo to Astro

For the past few years, I maintained two separate websites: manparvesh.com as a single-page resume site and blog.manparvesh.com as my blog. Both were built with Hugo1 using different templates. While Hugo was working well, I had a few concerns:

  1. Maintaining two sites (code bases, themes, deployments)
  2. Painful to make it work if you get back to the site after a while, as it’s possible that a lot would’ve changed in the meantime: hugo API, the template not supporting the new API, etc.
  3. Each hugo template is different and you need to learn how it’s arranged every time you try a new one.
  4. I got bored and wanted to try out Astro2
  5. Being a resume site and a blog site, if I wanted to showcase my projects I’d have to find a new hugo template, edit it, and deploy it.

So I decided to use an Astro template3 for this site! It contains my blog posts, projects, and even thoughts (short-form content, like tweets).

What I like in Astro so far

  1. Component-based code is easy to understand for me
  2. Good performance
  3. Easy to migrate content from my hugo sites
  4. Easy to run/build
  5. The template I’m using, Dante3 has a very clean and minimal design, and had useful features like dark mode and tailwind support, which my sites didn’t have before.
  6. It was easy to add a “Thoughts” section, which I’ve always wanted to have for sharing my short-form updates.

Footnotes

  1. Hugo - Fast static site generator built with Go

  2. Astro - Modern static site generator with component islands architecture

  3. Dante Template - Minimal Astro blog template 2