From Jekyll to zend-expressive to Vue.js to Hugo
Back in 2013, I started this blog based on Jekyll. A static generated site, hosted on GitHub pages. It did its job good and was ok to work with.
Later on, in 2015, I got involved with zend-expressive. I needed something to play around, get to know it better and test changes. This blog turned into a playground for exactly that purpose. I got my private VPS to host it, created something to load markdown files and re-used blog posts.
Proof of concept done, project done and finally having some free time again, it was time to make my site fast again. Not that a Vue.js can't be fast, but nothing beats a static generated site. This time I choose Hugo, mainly for its speed.
I always skipped static site generators because I couldn't use it to queue blog posts. That's were GitHub Actions come in. It has support for cron jobs. So basically you can trigger new builds each morning. When you set a blog post to a future date it won't be visible until that day the cron job was triggered.
I have to admit that Hugo has a very steep learning curve. But once you dig into it and have the patience you can build a fast site with a 100% lighthouse score. It's my preferred setup now for basic sites: Hugo, GitHub Actions, using the Netlify content delivery network to bring it as fast as possible to your device.