Hugo vs. Gatsby

In a world of fast-moving libraries and frameworks, it is easy to get lost in analysis paralysis when selecting frameworks, technical stacks, and ensuring that you are going to be working with tools that are modern, but stable, simple, but will scale.

The world of static site generators is no different. As an engineer that is passionate about Go and React (both of which I have worked with extensively professionally and on hobby projects).

Although my tendency is generally to roll my sleeves up with many frameworks and see which I like, sometimes it is more important to do the research and go depth first into one that you are seeing public validation and maturity in.

For me - I read a number of blog posts across the web and used a few judgement calls based on areas that I am passionate in digging into more deeply.

Gatsby: written in React and leveraging the Node and Webpack communities, this felt familiar for anybody in the React world. As somebody that historically is more passionate with backend development, React opened my eyes to a significantly more intuitive way to build single page applications when I first dug in. It made frontend development fun for me as my first hello world web page from years before. With a robust ecosystem of plugins and an opportunity to dig in with GraphQL some more this offered an exciting opportunity. That said, as I read more, I saw concerns about large websites and long build times. Debugging in the webpack world, while it follows similar patterns, often ends up being a needlessly tiring process. For the purposes of a personal website, I was on the hunt for something simple.

Hugo: written in Go (a language I pull off of the shelf any time I get an opportunity) and with a simple templating language that is built on top of the simple Go templating language appeared to be simple from the get-go. Simply fast page build times and commands and a CLI built in go was something I was happy to dive into. While it may not come with all of the bells and whistles as the Gatsby plugin ecosystem, it offers the ability to add in functionality with ESBuild (also build in Go) to include Javascript into the project and React if I ever felt the urge to overcomplicate or extend the website.

While this analysis was by no means extensive, it was the direction I took to write this first post on a Hugo page. If I end up changing my mind with more time on the framework you can expect to see this post referenced on that newly deployed version of these pages.