From Jekyll to Metalsmith

It has been roughly a year since I set up my static Jekyll blog on GitHub Pages. Back then, this free Jekyll hosting service was one of a kind. Nowadays, services like GitLab Pages allow free automated generation and hosting of static websites as well, and many limitations were removed.

The new site is generated with the amazingly simple Metalsmith, which is based on Node.js instead of Ruby. Which is great, because it allows for really easy integration of the Node ecosystem, and I find setting up a Node environment a lot easier than a Ruby one. (Bundler is nice, but I still encountered version conflicts, especially while using Middleman for a different website).

GitLab Pages makes getting online a breeze. A simple .gitlab-ci.yml file like this suffices:

image: node:alpine

pages:
  cache:
    paths:
    - node_modules

  script:
  - npm install
  - npm run build

  artifacts:
    paths:
    - public

  only:
  - master

Under the hood

Most of the hard work is done by Metalsmith plugins metalsmith-collections, metalsmith-markdown and metalsmith-jstransformer. Nunjucks is used as a templating language. I really liked Haml, but it's not really a first class citizen outside of the Ruby world, and Nunjucks is so much more KISS.

Domain name

After much thought, I decided steefhegeman.com to be the best domain name for this website. It annoys me how unoriginal it is, but sometimes boring is good.

With this, I hope to have a more stable website from now on. No more broken links. Promise.