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.
CNAMErecord instead of an
Arecord, adding Let’s Encrypt to the
“Unavailable for your site because your domain is not properly configured to support HTTPS”↩
- External Swagger files don’t support stage variables or pseudo parameters: awslabs/serverless-application-model#345
- S3-Lambda permissions and policies that reference S3 bucket names are mutually-exclusive, unable-validate-circular-dependency-cloudformation notwithstanding
Refreturn ARNs for all resources