About this site

I wanted to write a quick post about the architecture of this site for those who may be interested.

This site is powered by Jekyll. I’d previously had it on Wordpress, but moved to Jekyll because it’s a static site generator.

Advantages of using a static site generator:

  • Fewer moving parts
  • Much better security by not having a database behind the scenes
  • Improved performance; serving static HTML requires minimal server resources
  • Simpler scalability
  • Version control for all content
  • Git-based workflow
  • Free hosting on GitHub Pages (or very cheap hosting on S3)

I keep the source in GitHub, with a Travis CI pipeline that deploys the latest version to an S3 bucket. The assets for the site (images, etc) are hosted outside version control, in a separate S3 bucket. I did this to minimize the footprint of the source. I don’t generally change the images in my posts, so it didn’t make sense to have version control on those anyway.

Initially, I had the site hosted on GitHub Pages, which worked well for awhile, but I decided to transition it to an S3 bucket so that I could use custom Jekyll plugins. I wrote this post on how I went about making that transition.

I fronted the site with CloudFlare. This serves the function of giving me a free SSL cert and leveraging both CloudFlare’s CDN and DDoS protection features.

I generally use prose.io to edit the posts. This allows me to author posts from my mobile device, as well. My prose config can be found here.

For comments, I use Disqus. It’s just a simple bit of script that’s added to the site.

I use Google Analytics to track page views. I also use Pingdom to track outages, as well as page load speed. I have a Slack notification from Pingdom set to trigger if the site is unresponsive.