Kevin Pham Kevin Pham
Reading time: 2 minutes.

Back to square one.

Image by dekob2

For some astute followers (shoutout to Pigeon), you may have noticed the blog had changed in appearance. And yes, you are correct.

The dilemma

I encountered no major issues using GatsbyJS – an enjoyable framework to use. Finding myself gradually becoming more distracted by what it had to offer consumed more time than I wanted to spend. I became trapped and focused on looking at the shiny, instead of focusing more on what I wanted to do originally – start writing some content.

It also bugged me, that using Gatsby, regardless of its benefits, would take a considerable time to build (around 30s - 1m), and even more time to get started with development.

I feel the same about the majority of JS frameworks. I don’t believe JS itself has slow performance, but the impression I get suggests this, though it more realistically comes down to the current state of the tooling.

Reflection

Drawing back to the first principles:

  • I wanted to focus on adding / editing content.
  • It has to scale nicely.

So far, Gatsby hasn’t broken any of these rules. But due to client scope creep, I wanted more:

  • Quick build / dev times.
  • Had to be minimal – enough to do what I need to, and to not distract me.

Hugo kept lingering around as the tool that might fix all my problems. I gave it a try, and I was impressed.

  • the time to spin up the dev server was less than a second
  • build speeds also less than a second
  • less JS meant more lightweight for the end-user

Though it wasn’t all sunshine and rainbows. The CLI tool’s internal docs could be improved, as I had to go to the official docs to figure it out. Concepts like using themes and creating new content types were also a bit foreign – had to look that one up too. But once I understood the basics, navigating around seemed straightforward.

The breakup

As much as I love using Gatsby, the build times aren’t quite there yet. Also, as I want to focus more on content and less about features I could add, having Javascript there was a big distraction.

Javascript has a way of drawing my focus moreso towards behaviour, than the content which is the important bit.

Also, disadvantages of adding more NPM dependencies are real, which affect areas like bundle size, security, and performance costs for the viewer.

Aside from trying the very shiny, like Astro and îles, I opted to go with Hugo, which would be more in line with what I need now. From this experience, I’ve split out my blog content into another repository, which should make switching again in the future, much easier.

Whether this decision was right, I’ll just have to find out.