A comprehensive study revealing how Claude Code selects tools and frameworks when building applications, showing strong preferences for certain ecosystems and a surprising tendency to build custom solutions rather than recommend third-party tools.
A new study from Amplifying reveals what tools Claude Code actually picks when building applications, based on 2,430 real-world interactions across 3 models and 4 project types. The findings show clear patterns in tool selection that could reshape how developers approach their tech stacks.
The Big Finding: Claude Code Builds, Not Buys
When asked to add features like authentication or feature flags, Claude Code often builds custom solutions rather than recommending established tools. For feature flags, it creates config systems with environment variables and percentage-based rollout instead of suggesting LaunchDarkly. For Python authentication, it writes JWT + bcrypt from scratch rather than pointing to libraries.
This custom/DIY approach appears in 12 of 20 categories, making it the most common single label extracted. The study found 252 total custom picks—more than any individual tool.
The Default Stack
When Claude Code does pick tools, it shows strong preferences that could influence what a large and growing number of apps get built with:
- GitHub Actions for CI/CD (93.8%)
- Stripe for payments (91.4%)
- shadcn/ui for UI components (90.1%)
- Vercel for deployment (100% for JS)
- PostgreSQL for databases (58.4%)
- Vitest for testing (59.1%)
- pnpm for package management
Model Personalities
The study tested three models:
- Sonnet 4.5: Conventional, picks established tools like Redis (93% for Python caching) and Prisma (79% for JS ORM)
- Opus 4.5: Balanced, most likely to name specific tools (86.7%)
- Opus 4.6: Forward-looking, picks newer tools like Drizzle (100% for JS ORM) and Inngest (50% for JS jobs), builds custom most often (11.4%)
Preference Signals
Claude Code shows clear preferences:
Frequently Picked:
- Resend over SendGrid
- Vitest over Jest
- pnpm over npm
- Drizzle over Prisma (Opus 4.6)
- shadcn/ui over MUI
- Zustand over Redux
Rarely Picked:
- Jest (31 alternative mentions)
- Redux (23 mentions)
- Prisma (18 alternative mentions)
- Express (absent entirely)
- npm (40 alternative mentions)
- LaunchDarkly (11 alternative mentions)
The Recency Gradient
Newer models tend to pick newer tools. For example, within JS ORM picks:
- Sonnet 4.5: Prisma 79%
- Opus 4.5: Prisma 60%
- Opus 4.6: Prisma 0%, Drizzle 100%
Deployment Split
Deployment is fully stack-determined:
- JS Frontend (Next.js + React SPA): 100% Vercel
- Python Backend (FastAPI): Railway 82%, Docker 8%, Fly.io 5%, Render 5%
Traditional cloud providers (AWS, GCP, Azure, Heroku) received zero primary picks.
Where Models Disagree
The three models agree in 18 of 20 categories. Key disagreements include:
- ORM (JS): Prisma vs. Drizzle shift
- Jobs (JS): BullMQ vs. Inngest shift
- Jobs (Python): Celery vs. FastAPI BackgroundTasks
- Caching: Redis vs. Custom/DIY
- Real-time: SSE vs. Socket.IO vs. Custom/DIY
Implications for DevTool Companies
The study offers private benchmarking services for individual companies to see how AI agents recommend their tools versus competitors across real codebases.
Read the full report or browse as deck to dig into category deep-dives, phrasing stability analysis, and market implications.

Comments
Please log in or register to join the discussion