A statically exported personal site and blog built with Next.js and deployed on AWS.
- Next.js - React framework using the App Router and static export.
- React - UI library for the site experience.
- Tailwind CSS - Utility-first CSS framework for styling.
- Headless UI - Accessible unstyled components for interactive UI.
- MDX - Content format for blog posts and long-form pages.
- remark and rehype - Markdown and HTML transforms for headings, code blocks, and metadata.
- Shiki - Syntax highlighting for rendered code samples.
- Satori and Sharp - OG image generation during the build.
- pnpm - Package manager for the app and infrastructure packages.
- TypeScript - Static typing across the app and CDK infrastructure.
- Zod - Runtime validation for client and build-time environment variables.
- Node.js - JavaScript runtime environment (v24.x).
- AWS CDK - Infrastructure as code for the hosting stack.
- Amazon S3 and Amazon CloudFront - Static hosting and CDN delivery.
- Amazon Route 53 and * AWS Certificate Manager* - DNS and TLS for the site domains.
- Amazon CloudWatch RUM - Client-side real user monitoring.
- Sentry - Browser error tracking.
GitHub Actions for build, Lighthouse audits, and deployment to AWS.
| Workflow | Trigger | Purpose |
|---|---|---|
| CI | Push/PR to master, manual dispatch |
Build, Lighthouse, and gated deploy flow |
For the full pipeline, see the CI/CD documentation.
Static export deployed to AWS (S3 + CloudFront) via CDK.
| Environment | URL |
|---|---|
| Production | https://benjamin-chavez.com |
For infrastructure details and CDK commands, see the INFRASTRUCTURE.md.
For the first AWS deployment, use the initial deployment runbook and the checked-in helper script at scripts/initial-aws-deploy.sh.
| Command | Description |
|---|---|
pnpm dev |
Start the Next.js development server |
pnpm run build |
Generate OG images and build the static export |
pnpm run start |
Run the production server locally |
pnpm run lint |
Run the Next.js lint command |
For infrastructure commands (CDK synth, diff, deploy), see the INFRASTRUCTURE.md.
Requires Node.js v24+ and pnpm.
pnpm install
cp .env.example .env.local
pnpm dev- Add Cloudflare Web Analytics after the first AWS production cutover is stable.
- Add minimal browser-side Sentry once the AWS deployment flow is stable in production.
- Add CloudWatch RUM after the supporting AWS resources are provisioned.
