APACHE-2.0 License
The code in this repo is a minimal blog I use to host simonguest.com. It's a lightweight, statically generated site, built from the ground up. It's responsive for mobile devices and supports full keyboard navigation and ARIA-compliant markup.
This blog is not a "framework" per se, but if you want to clone it, the following information will help you run in your own environment:
To run the blog locally, clone the repo, npm install
the required devDependencies, and npm run server
to build the content and run a server on http://localhost:8000
.
All content (articles, presentations, projects, and the about page) is located in the /content
directory.
Each article is a markdown file that includes YAML metadata containing title, created, updated (optional), and and synopsis fields.
The blog uses pandoc to generate the build artifacts, which can be found in the /dist
folder. You can manually generate these artifacts with npm run build
.
The blog uses Github Actions and AWS CDK to build and deploy to an AWS S3 endpoint hosted via a CloudFront distribution. If you want to reproduce this deployment in your own environment, you'll need to setup Github secret keys for AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_DEFAULT_REGION corresponding with an IAM account that has permissions to create/delete CloudFormation stacks, assuming IAM roles, create and upload to S3 buckets, and create CloudFront distributions.
In addition, you'll need to supply CERTIFICATE_ID and CERTIFICATE_ARN which point to the ID and ARN of an existing ACM-based certificate for your domain.
Finally, you'll want to edit cdk-deploy.js
to specify the S3 buckets and CloudFront domains corresponding with your site. This script synthesizes a CloudFormation stack which creates the required S3 bucket, uploads the content (from /dist
), and sets up the CloudFront distribution.
After deployment, you'll need to create an A record for your domain pointing to the generated CloudFront distribution.