I thought I should take a minute to describe the web stack I’m using for this site, so here it goes.

The pages are being served by nginx on a free (for one year) EC2 instance running Debian Wheezy. My older sites were all hosted through Linode, but a free Debian EC2 instance beats $20/month. Sorry, Linode.

I knew I wanted to deploy a static site, and I’ve always used jekyll to build my static sites, but I thought I’d try to find a node.js based alternative. The main reason behind this is that it’s a pain to get jekyll to handle Less & Javascript building, concatenation, minification, syntax checking, etc. For that, I’d much rather use something like grunt. To avoid having a bunch of random ruby & node dependencies, I though I’d look for a node based replacement for jekyll. After a bit of searching, I realized that I was wasting time. I like jekyll. It works fine, and I know how to use it already, so why replace it? The dependencies only needed to be installed on my work machine since the server only has to deal with the built site, so worrying about ruby & node dependencies was a time suck.

During development, grunt watches files for changes and does JS syntax checking, JS minification, Less compiling & minification, and relaunches the dev server. Jekyll handles templating, the blog posts, and building the tag & archive pages. When I’m ready to deploy, a simple grunt deploy launches a task to rsync my built site to uniontownlabs.org and squiggle.city/~todd. There may be newer, fancier tools, but jekyll & grunt fit my needs.

I’m using SVG as much as I can for graphics, and shrinking their file size using svgo. If you can’t view SVG files, or if something looks weird, upgrade your browser. It’s time we move to vector graphics for everything except for pictures.

If you would like to look how I have things set up, check out the GitHub repo for this site.