Electric Froth

______ _ ______ ( / // _/_ o ( / _/_ / /-- // _ _, / _ , _, -/--_ __ / /_ (/____/(/_(/_(__(__/ (_(_(__ _/ / (_(_)(__/ /_


Opinionated Website Updates

by Joel Kleier on 2015-09-03

AWS S3 + CloudFlare

GitHub (where I’ve kept my site hosted for a long while now) is great, and haven’t had any particular problems. BUT I made the choice to move to S3 primarily because I’m sick of hosting images on one service, then my site on another. GitHub, for free, also restricts the total size a repository can be, and I’m not sure I want to pay just to have a larger repository there. S3 also gives me high reliability and a pretty fine-grained ability to grant permissions for API access to the S3 bucket I store my website on.

I should have put my site behind CloudFlare a long time ago, though. Free SSL, a firewall/WAF, CDN, analytics, and a bunch of other really cool features. Did I mention free?

So, check it out: https://joelkleier.com

The non-SSL version still works and doesn’t redirect. I did this so URL’s wouldn’t break (especially for RSS/Atom).

Notes on how

I won’t get into specifics — it’s pretty easy to find docs on all this stuff. But I will describe the general setup:

  1. On AWS, I created a new S3 bucket and made it publicly accessible (read only)

  2. On AWS, I created a new user with an associated IAM policy that allows my new user read/write access to only my S3 bucket

  3. Locally, I install the s3cmd application, and generate an appropriate configuration that uses my restricted user to access my sites S3 bucket

  4. Then, I setup CloudFlare to point my domain at the exposed S3 buckets' address

After that, it’s just a matter of generating my site and syncing the build directory with the s3cmd command.

Style Changes

I’ve been reading about the Gopher protocol lately, and it has influenced my thoughts on how my website is designed.

Gopher presents information in a very hierarchical fashion — basically like a 'better' file explorer. To me, it seems to promote a more consistent and structured way to present information, if not as glamorous and fancy.

After reading a bit about gopher, and exploring the last vestiges of gopherspace, I started asking myself what exactly is my website trying to present? This website isn’t an application, I’m not a designer by trade, nor am I really trying to market and sell any products of any kind here. I’m just trying to share some words, links, code, and maybe the occasional picture.

This stuck with me enough that I decided to re-style and re-shape the website, at least a little. The goal is for the site to say to a visitor "Here’s some information, explore it if you wish" — not "This website tries to hard and fails at being 'fancy' — good luck finding anything."

There’s definitely improvements to be made, but now this site has an opinion about it’s design (as simple and mediocre as it might be), and isn’t just chasing after some subjective idea of "nice to look at."


Along with the style changes, I decided to move back to my bash based custom static site generator (which I’m calling 'EFSH2'). It dramatically reduces the build time from the last iteration. This is largely due to the simplification of the sites structure, and some techniques that can be used more effectively because of it’s structure.

It has a long way to go to be a solid product yet…​ but it means I’m not reliant on an ecosystem that has a good probability of changing and breaking my process without warning and with some frequency.