Infrastructure

How this site is built, deployed, and kept up to date.

Static site built with Astro and Tailwind CSS, then deployed as pre-rendered files through CloudFront.

Every push to master triggers a build and deploy. A daily cron re-fetches GitHub data so the Projects page stays current on its own.

Pipeline

1

Trigger

A code push, the daily scheduled job, or a manual trigger starts the GitHub Actions workflow.

2

Fetch GitHub data

A script pulls repos, commits, and language stats from the GitHub API and writes a JSON file for the build.

3

Build

Astro compiles pages into static HTML, CSS, and JS. Images are optimized and HTML is minified.

4

Deploy to S3

The output is synced to an S3 bucket. Old files are cleaned up automatically.

5

Serve via CloudFront

CloudFront serves the site over HTTPS with global edge caching. The cache is cleared after every deploy.

Stack

Framework

Astro 5 + Tailwind CSS, static output, zero JS by default

Hosting

AWS S3 for static files, CloudFront for CDN, HTTPS, and caching

CI/CD

GitHub Actions, build on push, daily cron for data refresh

Data

GitHub API to JSON at build time, no runtime API calls

The full source is public.