Skip to content
keegan@portfolio:~$
$ cd ..

keegan@portfolio:~/projects/serverless-portfolio$ cat README.md

Serverless AI Portfolio

This website: a static Next.js site on S3 + CloudFront with a Node.js Lambda backend and a Bedrock-powered agent.

Overview

A fully serverless portfolio defined with AWS SAM. The frontend is statically exported and served from a private S3 bucket through CloudFront with Origin Access Control. Requests to /api/* are routed by CloudFront to an HTTP API backed by Node.js 22 Lambdas on ARM64. An AI agent built on the Amazon Bedrock Converse API answers questions about my experience by calling typed tools over portfolio data. Contact messages are written to DynamoDB, and a DynamoDB Stream with event filtering triggers a notifier Lambda that emails me via SES.

Highlights

  • Same-origin API through CloudFront: no CORS in production
  • Per-IP rate limiting and a daily spend cap on the AI agent
  • Keyless CI/CD using GitHub OIDC and a scoped CloudFormation execution role
  • Custom GitHub Copilot agents and skills for planning, reviewing and deploying