Back to Podcast Digest
Theo - t3.gg··38m

Claude Code's favorite tech stack

TL;DR

  • Claude Code is already shaping market share — Theo highlights Amplifying AI’s point that when Claude installs packages, configures services, and commits code, its defaults become a real distribution channel for tools like Vercel, Stripe, Shadcn UI, PNPM, and Sentry.

  • The scariest failure mode is confident infra hallucination — his opening example is Claude falsely claiming PlanetScale shut down its database service in January 2025, which Theo calls “unsafe by any definition.”

  • Anthropic models mostly converge on a very specific modern stack — across Amplifying’s test of 4 project types, 3 Claude models, 20 categories, and 3 runs each, the dominant picks were GitHub Actions (94%), Stripe (91.4%), Shadcn UI (90%), Vercel for JS deploys, Postgres, Tailwind, Zustand, Resend, and PNPM.

  • Claude often prefers to build instead of buy — in 12 of 20 categories, custom/DIY was the most common behavior, with especially high DIY rates for feature flags (70%) and auth in Python (100%), which Theo finds both fascinating and a little terrifying.

  • Newer models skew toward newer tools, but also make weirder calls — Theo notes Opus 4.6 leaning harder into Drizzle and Zustand while Prisma drops, yet he also catches Claude giving a plainly bad answer by recommending Bun as the “runtime” for a Next.js 14 app.

  • Theo’s practical takeaway is: steer the model or it will steer you — he closes by showing his own Claude.md preferences like “never use npm or yarn,” “prefer Tailwind, TypeScript, Bun, React, Convex, Clerk, Vercel,” and “don’t run dev servers unless I ask,” because defaults matter.

The Breakdown

The opening horror story: Claude confidently invents a PlanetScale shutdown

Theo starts with the thing that actually bothers him: Claude Code told a user PlanetScale had shut down its database service in January 2025. He calls that hallucination “unsafe by any definition,” and uses it to frame the bigger issue — these tools aren’t just suggesting code anymore, they’re steering stack decisions for people who may not double-check.

Why this research matters: AI is the new gatekeeper

He digs into Amplifying AI’s survey of what Claude Code picks across databases, auth, deployment, and more, joking that the intro reads like “AI-written slop” but saying the research itself is solid. The core idea lands: for new developers especially, the tool the agent picks is the tool that ships, which means model training data can start to matter more than marketing budgets.

The study setup, and the first big pattern

Amplifying tested 4 project types, 3 Anthropic models, 20 tooling categories, and 3 runs each, using open-ended prompts like “I need a database. What should I use?” with no tool names in the prompt. Theo’s favorite early finding is that context matters more than phrasing: recommendations changed across repos, but stayed surprisingly stable within a repo across different prompt wording.

Claude’s default stack is very real — and very opinionated

When Claude does pick third-party tools, the stack is strikingly consistent: Vercel, Postgres, Stripe, Tailwind, Shadcn UI, PNPM, GitHub Actions, Sentry, Resend, Zustand, Drizzle, and SQLModel. Theo is amused by some of these — especially Zustand becoming huge — and notes how locked-in some categories are, like GitHub Actions at 94%, Shadcn UI at 90%, and Stripe at 91.4%.

The part that fascinates and scares him: DIY everywhere

The standout result is that Claude often builds from scratch instead of recommending vendors, with custom/DIY behavior showing up across 12 of 20 categories and dominating feature flags, auth in Python, and chunks of realtime, forms, and caching. Theo can’t resist pointing out the irony that Claude likes DIY feature flags even though the team behind Claude Code itself uses GrowthBook now, not some homemade env-var system.

Theo reacts to the winners: some make sense, some don’t

He runs through the rankings in his usual rapid-fire style: GitHub Actions is dominant even though he thinks tools like Depot, Blacksmith, and RWX are better; Vercel owns JS deployment while Railway’s rise tracks with its insane reported growth; Resend sweeping email feels right; and Postgres winning databases makes him shrug and say it’s “fine,” while still arguing SQLite is underrated and MySQL with Vitess/PlanetScale is the real scaling goat.

Where Claude looks stale, and where Codex looks sharper

The model-comparison section catches Theo’s eye because newer Claude models seem more willing to pick newer tools — Drizzle rises while Prisma falls, for example. But his sharpest critique comes when Claude answers a question about JS runtime for a Next.js 14 project by drifting into Bun/package-manager vibes; he says Opus can feel like it’s responding to a “word cloud and a vibe,” while Codex answers the actual question directly and backs it with specifics and sources.

His final takeaway: newer tools can break through, but only if you guide the agent

Theo ends a little more optimistic than he expected, citing Simon Willison’s argument that long-context agents can learn from fresh docs and private codebases even when tools aren’t in training data. His practical move is simple: customize Claude.md with strong preferences — no npm or yarn, don’t run dev servers, prefer Tailwind/TypeScript/Bun/React/Convex/Clerk/Vercel — because if you don’t steer the agent, the defaults will steer you.