How this site is built

This is a quick colophon for micah‑404 — what it runs on, why those choices were made, and what has to happen in the real world to keep it deployed.

Core stack

  • Astro ^4.16.0 — content‑first static site framework that keeps the output lean (mostly HTML/CSS) but still lets me add interactive components later if I earn the complexity.
  • Node >= 22.0.0 — modern LTS runtime so tools like Astro/Vite work as designed and I don’t have to think about ancient Node quirks.
  • TypeScript ^5.6.0 — light type safety and editor help without turning this into a full‑blown app.
  • @astrojs/check ^0.9.0 — sanity checks on the Astro/TypeScript side to catch obvious mistakes early.

Hosting & deployment

  • Vercel — hosts the built Astro static site, connects directly to the GitHub repo, and handles HTTPS certificates so I don’t have to babysit Nginx or Certbot.
  • GitHub — source of truth for the code; pushes to main trigger Vercel deployments.
  • Namecheap — domain registrar; DNS records for the apex and www point at Vercel so micahwedemeyer.com resolves correctly.

Local dev & environment

  • nvm — manages Node versions so this project can pin to Node 22 without breaking whatever else is installed on the machine.
  • Cursor — the editor + AI pairing environment used to scaffold and iterate on this site. Good at exploring options and wiring boilerplate; still needs a human to own decisions and real‑world actions (auth, DNS, pushes).

Why this setup

  • I wanted a content‑first, low‑maintenance site that feels fast and simple but isn’t boxed into a theme or CMS.
  • Deployments should be boring: push to git, Vercel builds, the site updates. No bespoke CI/CD adventure for a personal site.
  • The stack should be modern but not fragile: mainstream tools with good docs, not the newest experimental thing I’ll regret maintaining.

Note to future me (and future AI)

Any time a core decision here changes — framework, hosting, Node/TypeScript version, deployment flow, or how this AI is wired into the editor — this page should be updated automatically as part of that change. If the AI forgets to do it, that’s a bug in the process, not the stack.