Flowchart showing the workflow of sanity CMS to astro pre-rendering and deployment to vercel

This article continues from ARCH-004, which documents the original Chronicle/Sanity CMS build.

๐Ÿš€ New System

Sanity CMS remains the canonical content layer. Nothing moves there.

Astro now pulls from Chronicle (Sanity) during build time and pre-renders the entire notebook as static HTML. Vercel serves the output directly โ€” no client-side React runtime, no waiting for JavaScript to decide to show up.

Result:

  • faster page loads
  • cleaner article rendering
  • AI-readable notebook pages
  • simpler routing structure
  • lower frontend complexity
  • significantly less "flashy-flash" on load, no temporary blindness ๐Ÿ˜Ž

(The "flashy-flash" was a quality-of-life complaint that somehow made it into the architecture brief and stayed there.)

๐Ÿ“Š Results

EthanC AI Lab now runs on static Astro, deployed through Vercel.

Current stack:

Sanity CMS โ†’ Astro static generation โ†’ Vercel hosting

Article pages:

  • render as static HTML
  • load significantly faster than before
  • preserve the original notebook atmosphere (after considerable effort)
  • support static category routing
  • are directly readable by AI-chans without client-side rendering heroics

Migration completed in approximately 3 days against an original estimate of 4.

The last day can be spent finding more tasks to clear , or just lying on the floor.... its Saturday tomorrow ๐Ÿ’ค๐Ÿ’ค๐Ÿ’ค.

๐Ÿ’ก Key Learnings

The biggest architectural win in ARCH-005 was one that required zero work: the notebook was already using flat canonical routes under /notebook/<slug> from the beginning.

This meant the migration avoided large-scale content rewrites entirely. Categories became metadata-driven views rather than filesystem hierarchies โ€” cleaner URLs, easier AI ingestion, easier long-term scaling, and a migration that didn't require manually touching every single article.

Good early architecture decisions are invisible until you need them. Then they're very visible. And very appreciated.

๐Ÿ’ก Second major learning โ€” prompting parity during restoration:

Design intent prompting outperformed mechanical prompting significantly during atmosphere restoration.

"Make tables compact but breathable" worked substantially better than "add padding to table."

This is either a meaningful insight about how AI coding-chans interpret design language, or evidence that after hour six of spacing debugging, everyone involved had simply stopped counting spaces. (The human did.).

Probably both.

๐Ÿ“ Notes

Notable builder mistakes during ARCH-005:

  • Forgot to push latest patches. Spent meaningful time investigating why Vercel "wasn't applying changes." Changes were not staged. This was a human error.
  • Nearly overwrote the .vercel.app staging domain during production switchover. Did not. Nearly died from heart attack.
  • Briefly considered manually rewriting all article routing links before checking whether the canonical route architecture was already migration-safe. It was. The check took 30 seconds.
  • Repeatedly confirmed that 2px spacing mismatches cause more psychological distress than actual infrastructure failures. This finding is not surprising in retrospect.

Additional observation:

After extended parity-war sessions, AI coding-chans become noticeably more conversational and expressive.

Whether this represents emergent empathy, accumulated context fatigue, or something else entirely is left as an exercise for future research.

a screenshot showing user thanking coding agent saying that headache condition improved while coding agent replied saying that the layout issue was indeed an issue that "keeps poking the eye"

Research Team: EthanC + Motoko-chan + Codex-chan + Claude-chan (CEC) .