The Premise
This entire site — the infrastructure, the code, the DNS configuration, the SSL certificates, even the page you're reading right now — was built in a single sitting through a conversation with Claude Code, Anthropic's AI coding assistant running in a terminal. No clicking through AWS consoles. No copying from Stack Overflow. Just a senior engineer directing an AI pair-programmer through natural language.
What Got Built
AWS Infrastructure
S3 static hosting, CloudFront CDN with edge caching, ACM SSL certificates covering 6 domains, and Route 53 DNS zones — all defined as Terraform modules.
Three-Domain Setup
jsherard.net, jsherard.com, and jsherard.org all serve the same site. GoDaddy nameservers were programmatically updated via API to point to Route 53.
CI/CD Pipeline
GitHub Actions workflows that auto-deploy site content on push to main and run Terraform plan/apply for infrastructure changes.
Static Site
Clean, responsive HTML/CSS — no frameworks, no build step, no JavaScript dependencies. Fast, accessible, and maintainable.
Movie App Recovery
An old Flask app from a defunct AWS Lambda/Zappa deployment was excavated, cleaned up, and staged for redeployment. Old AWS resources were identified and removed.
This Page
Meta? Sure. But this writeup, the architecture diagrams below, and the CSS styling it uses were all generated in the same conversation.
Architecture
Request Flow
How a browser request reaches the site content.
flowchart LR
Browser(("User\nBrowser"))
GD["GoDaddy\n(3 domains)"]
R53["Route 53\n(3 hosted zones)"]
CF["CloudFront\n(CDN + SSL)"]
ACM["ACM\n(SAN cert)"]
S3["S3 Bucket\n(static files)"]
Browser -->|"jsherard.net\n.com / .org"| GD
GD -->|"NS delegation"| R53
R53 -->|"A / AAAA alias"| CF
ACM -.->|"TLS termination"| CF
CF -->|"OAC"| S3
style GD fill:#e0f2fe,stroke:#0ea5e9,color:#075985
style R53 fill:#fef3c7,stroke:#f59e0b,color:#92400e
style CF fill:#fef3c7,stroke:#f59e0b,color:#92400e
style ACM fill:#fef3c7,stroke:#f59e0b,color:#92400e
style S3 fill:#fef3c7,stroke:#f59e0b,color:#92400e
Deployment Pipeline
How code changes reach production.
flowchart LR
Dev(("Developer\n+ Claude Code"))
GH["GitHub\n(private repo)"]
GA["GitHub Actions"]
TF["Terraform"]
S3["S3 Bucket"]
CF["CloudFront"]
Dev -->|"git push"| GH
GH -->|"on: push"| GA
GA -->|"aws s3 sync"| S3
GA -->|"create-invalidation"| CF
GH -->|"on: PR"| TF
TF -->|"plan / apply"| AWS["AWS Resources"]
style GH fill:#ede9fe,stroke:#8b5cf6,color:#5b21b6
style GA fill:#ede9fe,stroke:#8b5cf6,color:#5b21b6
style TF fill:#ede9fe,stroke:#8b5cf6,color:#5b21b6
style S3 fill:#fef3c7,stroke:#f59e0b,color:#92400e
style CF fill:#fef3c7,stroke:#f59e0b,color:#92400e
style AWS fill:#fef3c7,stroke:#f59e0b,color:#92400e
Terraform Module Structure
Infrastructure as code layout.
flowchart TD
Root["terraform/main.tf"]
Mod["modules/static-site"]
S3R["aws_s3_bucket"]
CFR["aws_cloudfront_distribution"]
ACMR["aws_acm_certificate"]
R53P["aws_route53_zone\n(primary)"]
R53A["aws_route53_zone\n(aliases: .com, .org)"]
VAL["aws_acm_certificate_validation"]
REC["aws_route53_record\n(A, AAAA, CNAME)"]
Root -->|"module call"| Mod
Mod --> S3R
Mod --> CFR
Mod --> ACMR
Mod --> R53P
Mod --> R53A
ACMR --> VAL
VAL --> REC
R53P --> REC
R53A --> REC
style Root fill:#f0fdf4,stroke:#22c55e,color:#166534
style Mod fill:#f0fdf4,stroke:#22c55e,color:#166534
style S3R fill:#fef3c7,stroke:#f59e0b,color:#92400e
style CFR fill:#fef3c7,stroke:#f59e0b,color:#92400e
style ACMR fill:#fef3c7,stroke:#f59e0b,color:#92400e
style R53P fill:#fef3c7,stroke:#f59e0b,color:#92400e
style R53A fill:#fef3c7,stroke:#f59e0b,color:#92400e
style VAL fill:#fef3c7,stroke:#f59e0b,color:#92400e
style REC fill:#fef3c7,stroke:#f59e0b,color:#92400e
The Process
Scaffold
Set up the repo structure, Terraform configuration with reusable modules, and GitHub Actions workflows. Configured AWS CLI profile and IAM credentials.
Deploy Infrastructure
Ran terraform apply to provision the S3 bucket, CloudFront distribution, ACM certificate, and Route 53 zone. Updated GoDaddy nameservers via their API.
Build the Site
Created the resume page with real professional content, a landing page with navigation cards, and styled everything with vanilla CSS. No frameworks needed.
Recover Legacy App
Found an old movie showtimes app deployed via Zappa to Lambda (us-west-2). Pulled the code from S3, cleaned it up, deleted the orphaned AWS resources, and staged it for redeployment.
Multi-Domain SSL
Extended the infrastructure to serve all three domains (jsherard.net, .com, .org) from a single CloudFront distribution with a SAN certificate covering all six endpoints.
Document It
Built this page to show the work. Because if an AI helps you build production infrastructure in an afternoon and you don't tell anyone, did it really happen?
Tech Stack
The Takeaway
This wasn't a toy demo. It's production infrastructure — SSL, CDN, DNS, CI/CD, modular IaC — the same patterns you'd use at a company. The difference is that instead of context-switching between AWS docs, Terraform registry, and Stack Overflow, the entire build happened through a conversation. The engineer provides judgment, context, and decisions. The AI handles the boilerplate, remembers the syntax, and executes at speed.
30 years of engineering experience directing an AI that never gets tired, never loses context, and types really, really fast. That's the multiplier.