I previously ran this site on top of a WordPress instance that I rarely used. Despite having a low-traffic, minimal-content website, I never want to worry about flash traffic impacting site availability. I am a professional, you know.

Amazon provides detailed instructions on setting up a static website on AWS S3. I wanted to maintain a blog despite the limitations of my new hosting provider. I decided to see what was possible with S3 as a static host used for regularly updated content.

Jekyll is a powerful blog-aware static site generator. GitHub Pages are powered by Jekyll, but I didn’t want to place my site contents in a public GitHub repository. A public repository would expose all of my draft posts, and I can expose enough stupid thoughts to the world without sharing my drafts. S3 and a private BitBucket repository therefore became my tools of choice.

After a short detour of rolling my own simple Bash-based static site generator for fun, I switched to Jekyll. The only portion of my Bash-based generator that remained was a script to upload the Jekyll-generated site to S3 using the s3cmd command-line tool. Getting started with Jekyll was easy:

gem install jekyll
jekyll new dlane-net-web
cd dlane-net-web
jekyll server

As was my Bash deploy script:

#!/bin/bash

set -e
jekyll build

echo "Transferring content to S3..."
for file in `find _site`
do
    UPLOAD_PATH=`echo $file | sed 's/^_site/dlane.net/g'`
    if [ -f "$file" ]; then
        s3cmd put $file s3://$UPLOAD_PATH
    fi
done

While the experience has been satisfactory, I would not recommend this path for any heavy WordPress users. Jekyll could quickly become a pain point in your writing process if you are uncomfortable writing content in pure HTML or Markdown syntax, or if you have needs that a static web page can not offer. That said, Jekyll is a great solution for small-time writers like myself.