1 minute read

I finally updated my website to the 21st century, and decided to go full Computer Scientist on it. I was looking for something that was full-featured (markdown, math), methodical to update (git), and customizable (layout, fonts).

Having rewritten the RSS 2017 website from scratch (later enhanced by the incomparable Brian Hou), I developed a fondness for Jekyll as my base engine. Infinitely flexible, Jekyll empowered us to generate the entire proceedings by piping data from CMT seamlessly.

I’m a big fan of Edward Tufte’s work, especially his advice to maximize data-ink, so the Tufte Jekyll theme was a natural layout choice.

I hosted the site source code in a private GitHub repo. Now there were several ways to push the built site out to the world. I considered writing a git post-receive hook to pipe the site content to the UW CSE web server (works quite well for our lab website), but finally decided on something much simpler: point my public GitHub pages repository to the built site (remember to add an empty .nojekyll file).

Then, I setup a 301 redirect from my UW CSE site to my GitHub pages public site. Now I had a stable and working pipeline. Finally, I decided to buy a domain on NameCheap, and secured it via SSL certificates from CloudFlare.


After using the website for a few years, I got increasingly frustrated with the friction of having to jekyll build the site locally every time I updated content. A challenge with the Tufte Jekyll theme is that it uses custom plugins that are incompatible with the new jekyll-remote-theme plugin that enables Github sites to be autobuilt upon custom actions like push. Now, there are other Github Actions available but I worried about their brittleness. So I decided to simplify and pick a theme that could be installed as a remote theme. I’ve loved Minimal Mistakes ever since!