How this was built

smw.org is a personal site with a deliberately small footprint: a hand-written static front end, a sliver of serverless behind an admin login, and everything that runs it defined as code.

The stack

Front end
Hand-written HTML, CSS, and vanilla JavaScript. No framework, no build step, no bundler. All artwork is pure CSS and inline SVG.
Hosting
Static files in Amazon S3 (private), served worldwide through the Amazon CloudFront CDN over HTTPS with a certificate from AWS Certificate Manager.
Admin
A small area gated by Amazon Cognito — hosted sign-in, OAuth 2.0 authorization-code flow with PKCE, MFA-capable, no self-service password reset.
Write API
A single AWS Lambda function (Node.js) that the admin area calls to edit the link list and default location. It scales to zero and costs nothing at rest.
Content store
The editable content is plain JSON objects. A save updates the object and pushes the change to the CDN edge immediately, so the site stays fully static for visitors.
Infrastructure
100% Terraform — network, CDN, certificates, identity, function, and permissions. Every change is planned and reviewed before it is applied.
Delivery
Content and infrastructure live in separate git repositories. Deploying the site is one script: sync to storage, then invalidate the edge cache.

Data on the page

Security posture

Process

The infrastructure and site were built collaboratively with Claude (Anthropic) acting as the engineer — writing the Terraform, running the plans, and shipping the deploys, with a human reviewing every step.

0 servers to patch
1 command to deploy
~$0 per month
← back to smw.org