Technical Stack

NB: “Technical Stack II” is a newer post on this topic. The post below is outdated.

At a friend’s request, here is an overview of this blog’s technical stack.

This blog is hosted on GitHub Pages. Jekyll transforms Markdown files into a static website. An AWS CloudFront distribution provides HTTPS support as, unaffected by DNS record edits1, GitHub Pages will not serve content over HTTPS2.

As I edit Markdown files in Ulysses, Dropbox notifies an AWS API Gateway. A chain of AWS Lambda functions syncs updates from Dropbox to the GitHub Pages repository3. The required resources are described by an AWS CloudFormation template, in spite of limitations4.

  1. Using a CNAME record instead of an A record, adding Let’s Encrypt to the CAA record, etc. ↩︎

  2. “Unavailable for your site because your domain is not properly configured to support HTTPS” ↩︎

  3. smockle/dropblog ↩︎

  4. For example: