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
maintrigger Vercel deployments. - Namecheap — domain registrar; DNS records for the apex and
wwwpoint at Vercel somicahwedemeyer.comresolves 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.