2026-08-24 · 2 min read
Rebuilding this site from scratch
This site has been through a few false starts. The most recent one paired a Strapi backend with a Next.js frontend — reasonable on paper, but it meant running and securing a CMS I didn't actually need, just to manage a portfolio and a blog. That attempt got abandoned mid-build, and the repo sat in an inconsistent state for a while: a frontend/ directory that had quietly been dropped from git history, and a backend/ directory that was deleted on disk but never committed as gone.
Starting over, the goal was narrower and more deliberate: host on AWS Amplify so I'm not managing a server myself, keep the whole stack in Next.js so the public site and a secure admin area (auth, stats, communications, post management) can live in one app, and treat security and documentation as first-class from day one instead of an afterthought.
The DNS bug
Before any of the rebuild work, brandontwilliams.info had never resolved correctly since I transferred it from GoDaddy to Route 53. Turned out to be a classic mismatch: the domain registration's name servers didn't match the hosted zone's actual NS records — almost certainly from a hosted zone getting deleted and recreated at some point (Route 53 mints a new random set of NS hostnames every time) without the registrar delegation being updated to match. Fixed it by copying the hosted zone's real NS records over to the domain registration. It also explained a second mystery: an old, abandoned Amplify app had a permanently failed custom-domain association for this exact domain, because it could never see the DNS records it needed to verify ownership.
What's actually running now
Next.js on the App Router, Tailwind, shadcn/ui components on Base UI primitives, a dark-navy-and-cyan design system sized for a security-minded IT professional's site rather than a creative agency's, and a blog (this post) running on MDX files in the repo for now, with a migration path to a database-backed admin CMS once the auth-gated admin area gets built.
More on that admin build, and how the whole thing gets deployed via GitHub Actions and Amplify, in a future post.