Throughout the last decade I made about half a dozen personal blogs that I have abandoned a couple weeks or months after setting them up. I still feel the need to improve my writing skills so I give it another try.

The blog setup is cheap and minimal. I use Jekyll as static site generator. The blog contents are versioned with Git and pushed to a private repository on GitHub. Instead of hosting it on GitHub Pages I use Netlify as it allows me to keep the GitHub repository private and offers seamless SSL setup for my custom domain via Let’s Encrypt on the free Starter plan. Each time I push changes to GitHub, Netlify builds the Jekyll project and deploys it to its CDN. This minimal continuous deployment pipeline is extendable and works very well with my workflow.

I don’t want to install Ruby with all its dependencies on my work station so I use a Docker container in my local development environment like this:

docker run --rm -it -p 4000:4000 -p 35729:35729 \
-v "$PWD:/srv/jekyll" jekyll/jekyll jekyll serve --livereload

The -v flag mounts the current directory on the host to the /srv/jekyll directory in the container where the Jekyll source files are expected. The LiveReload port 35729 is propagated to the container as it allows the page to update when changes are detected.