Personal consulting website — hosted on S3 + CloudFront with a contact form backend via API Gateway + Lambda + SES.
├── index.html Homepage
├── css/style.css Styles
├── lambda/
│ ├── contact_handler.py Contact form Lambda
│ └── api-template.yaml CloudFormation for API backend
├── deploy.sh Deploy script
└── README.md
./deploy.shRequires AWS CLI with appropriate credentials.
The contact form POSTs to https://api.robertmaefs.com/contact which triggers a Lambda that forwards the message via SES.
One-time setup: Verify the SES sending address:
aws ses verify-email-identity --email-address hello@robertmaefs.comThen click the verification link sent to that inbox.
robertmaefs.com— homepage (CloudFront via S3)app.robertmaefs.com— privacy policy, EULA (CloudFront via S3)api.robertmaefs.com— contact form API (API Gateway)oauth.robertmaefs.com— QuickBooks OAuth callback (Cloudflare Tunnel)