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.
For example: * 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 * Neither[return]
Refreturn ARNs for all resources