Skip to main content
Navigation
HomeTechnical ReferenceJournalGitHubGitHub
Sidebar — toggle document categories via the logo
Portfolio — Personal Website with AWS CI/CD

Portfolio — Personal Website with AWS CI/CD

June 30, 2020

Overview

Portfolio is a personal website and Progressive Web Application built with Gatsby.js — a React-based static site generator. The entire site is themed with Material UI, featuring custom typography and color schemes applied consistently across all pages. Content is driven by JSON data files, keeping the site fast and simple without a CMS dependency.

The site is hosted on AWS CloudFront for global CDN delivery, with a CodePipeline that automatically builds and deploys on every push to the main branch. A serverless AWS Lambda function handles contact form submissions, sending emails without maintaining a backend server.


Key Features

  • Static site performance: Gatsby.js pre-renders all pages at build time for instant load speeds
  • Material UI theming: Fully customized theme with consistent typography, colors, and component styling
  • Automated deployment: AWS CodePipeline triggers build and CloudFront deployment on every push
  • Serverless contact form: AWS Lambda handles email delivery — no backend server to maintain
  • PWA-ready: Progressive Web App capabilities for offline access and installability
  • JSON-driven content: Project data defined in static JSON files for easy maintenance

Architecture

A single-service, serverless architecture:

ServiceRole
Gatsby (React)Static site generation with Material UI
AWS CloudFrontGlobal CDN delivery with SSL
AWS CodePipelineAutomated build and deployment pipeline
AWS LambdaServerless contact form email delivery
AWS S3Static asset hosting

Deployment Flow

git push main → CodePipeline triggers → npm build → S3 sync → CloudFront invalidation → Live site updated

The contact form posts to a Lambda function endpoint, which formats and sends the message via email — all without a persistent server.


Tech Stack

LayerTechnology
Static SiteGatsby.js, React
UI FrameworkMaterial UI (custom themed)
HostingAWS S3, AWS CloudFront CDN
CI/CDAWS CodePipeline
ServerlessAWS Lambda (contact form)
ContainerDocker (Dockerfile included)
LanguageTypeScript (partial), JavaScript