Bernd Blasius
← Back to Blog
August 19, 2026Newscomputers & internet

The Webpage Odyssey: Migrating from Hugo to Astro

Migrating my academic portfolio of 170+ pages to Astro during the summer break.

Why I changed the framework for my website (again)

The windmill continues to turn

Here we go again: the next step on my lifelong Odyssey through web pages. You might remember that a couple of years ago I proudly set up a shiny new website using Hugo (documented in my first post). At the time, I chose the popular Hugo Academic theme. It looked professional, had pre-packaged layouts for papers and projects, and seemed like a safe bet.

Fast forward to the present: the Academic theme was rebranded, shifted structure, and essentially became unmaintained in its original form. Every time I ran a local update, something in the underlying layouts broke. I found myself in a bizarre developer deadlock: I didn’t fully understand the complex internal goings-on of the Go templates under the hood, and I didn’t want to break the delicate setup that was holding my publication list together.

This leads to a common frustration among Hugo users: the build system is incredibly fast, but the ecosystem can feel brittle. The frequent breaking changes in newer Hugo versions eventually wore me down. I ended up keeping an outdated, frozen-in-time version of the Hugo binary on my computer, crossing my fingers and hoping that compiling the site wouldn’t error out every time I added a new paper. Obviously, this wasn’t a sustainable way to live.

Astro to the rescue

During this year’s summer break, I decided to take a look at modern alternatives. After surveying the landscape of static site generators, I kept running into Astro.

Like Hugo, Astro builds static HTML pages with zero client-side JavaScript by default, meaning the site is extremely fast. However, instead of Go’s template syntax, Astro uses a component-based model powered by modern JavaScript and CSS. For someone who doesn’t build websites every day, this structure felt much more approachable and easier to modify.

So, I rolled up my sleeves and spent some quiet summer days translating the more than one hundred fully indexed pages of my old website into Astro. It was a perfect holiday activity—therapeutic in its own way, like reorganizing a digital library.

The transition: cleaning up the garden

Now that the dust has settled and the site is running on Astro, life is considerably simpler. First, the design is much cleaner and loads instantly. Because the layout uses a single component structure with Tailwind CSS classes directly on the elements, I am at least a bit closer to understanding how my website actually works under the hood.

Second, the transition gave me a great opportunity to prune the digital garden, where over the years, keywords and project tags had accumulated duplicates. More importantly, the new layout made it simple to add more taxonomies, so I added new tags for biological species and new blog categories. Everything, from publications to blog posts, is now fully searchable, and the design across all sections is completely consistent.

In total, everything now feels cohesive, organized, and—best of all—easy to maintain.

Concluding remarks

Will this be my final migration? In the fast-moving world of web development, claiming this would be presumptuous. But for now, the new site has a (hopefully) modern look, is clean, responsive, and (hopefully) completely under my control. I can add papers, update my CV, and write blog entries without checking which version of a Go binary is installed.

And if the framework landscape shifts again in another five years… well, at least I know what I’ll be doing next summer break!

Keywords
programming