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
Trigger
A code push, the daily scheduled job, or a manual trigger starts the GitHub Actions workflow.
Fetch GitHub data
A script pulls repos, commits, and language stats from the GitHub API and writes a JSON file for the build.
Build
Astro compiles pages into static HTML, CSS, and JS. Images are optimized and HTML is minified.
Deploy to S3
The output is synced to an S3 bucket. Old files are cleaned up automatically.
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.