I won’t go into too much detail in this post about the exact steps I took to get this site running. Instead, I will provide links to the resources that I found most useful in this project.
First, here’s the post that inspired me to create a personal website. The author opts to use Hugo as a static site generator & GitLab for CI/CD & hosting; he also uses CloudFlare to get a SSL cert and to redirect www subdomain traffic to the apex domain.
GitLab’s CI/CD tools sound more powerful than GitHub’s. Hugo’s theme mechanism uses sub-repositories. This seems more straightforward than Jekyll’s approach to themes. However, if you’re already signed up on GitHub & familiar with the GitHub Pages feature it may be quicker to use the well documented Jekyll integration to create & host a blog with a SSL cert. Here’s a cool post about why it’s good for a static site to use SSL. Let’s be honest though, when compared to HTTPS, HTTP just doesn’t look as good on a developer’s personal website.
Second, here’s GitHub’s documentation on the pages feature, using Jekyll with pages, and how to use a custom domain with your site. In short:
One mistake I made when creating my repository was naming it ‘jdrbc’, & not ‘jdrbc.github.io’. GitHub uses the ‘[username].github.io’ repository naming convention to distinguish between project sites and personal sites. The Jekyll themes supported by GitHub will adjust the content of your website slightly depending on if it is a project or personal site.
Third, here’s the best tutorial I found on how to get running with Jekyll. GitHub mentions that Windows (my primary OS) is not officially supported by Jekyll, so I followed the tutorial in a VirtualBox Ubuntu VM. My main takeaway from these tutorials is that if you find yourself doing something repetitive or copy-pasting code, then go back and read the docs. Likely there’s a better way to use Jekyll to accomplish that task.
bundle exec jekyll build --watch
and bundle exec jekyll serve
.Finally, to purchase my domain name & configure the DNS records I used Rebel. There are a ton of options out there, but Rebel has worked well in the past so why change things up?
Hopefully this information will stay relevant for 2 minutes & help you get your site working!
tags: GitHub, - blog, - Jekyll