Skip to content
Tien Nguyen
Back to blog

Why I built this site with Astro and Claude Code

Tien Nguyen

Tien Nguyen

· 2 min read

ai-engfrontend-craft

I built this site in an afternoon, mostly by reviewing what Claude Code wrote rather than typing it myself. That is roughly my whole job now: plan, review, say “no, again”, ship.

The stack is deliberately boring

  • Astro for static output. No client JS I do not need.
  • Tailwind v4 for styling, with design tokens driven from a single file.
  • MDX for these posts, with real syntax highlighting for code.

Boring is the point. The interesting part isn’t the framework, it’s how little of it I actually typed.

What the agent did

I described the design, the routes, and the content model. Claude Code wrote the components; I read every diff and sent most of them back at least once. The reading-time helper below is the kind of small, typed, testable thing it gets right on the first try:

// small, typed, testable: exactly what an agent should be writing
export function readingTime(text: string): string {
const words = text.trim().split(/\s+/).filter(Boolean).length;
return `${Math.max(1, Math.ceil(words / 200))} min read`;
}

What I still own

The taste. Knowing when “done” isn’t done, catching the edge case the tests missed, deciding what not to build. The agent is fast. Being right is still on me.

More soon: the AI-first workflow in detail, front end craft, and honest takes on the tools that actually hold up.

Liked this? Let's build something.

I take on a small number of front end and AI-engineering projects, and I'm always up for talking shop. Tell me what you're working on.