Developing my website

May 15, 2023

Design & Architecture

My website was built with GatsbyJS, a static site generator. Instead of creating individual JS pages for each blog post, I utilized Gatsby plugins to parse and interpret markdown folders. With the help of GraphQL, Gatsby can extract the data from the markdown files and inject it into a data prop, which can be centralized in a single component for easy customization. The website is hosted on AWS Infrastructure and the following architecture diagram illustrates how it operates.

AWS Diagram

I opted to utilize two accounts: a "dev" and "production" account. Using the IAM service, an IAM User will be assigned an IAM Role that has minimal privileges, enabling them to make minor adjustments to the S3 bucket and CloudFront settings.

IAMRoles Diagram

  • Make it more mobile friendly
  • Update the navigation between pages
  • Create CI/CD instead of manually uploading to S3 via CLI