Back to blog

My AI Development Stack in Late 2025

November 10, 20254 min read
My AI Development Stack in Late 2025

People keep asking what tools I use. Here's my actual setup as of November 2025 - not a "top 10 AI tools" listicle, but what I actually reach for and why.

The core tools

Claude is my default for deep thinking and building. Complex problems, architecture decisions, writing, analysis. The context window is large enough to hold entire codebases, and it's good at following nuanced instructions.

ChatGPT is my utility knife. Quick searches, brainstorming, research, second opinions. When I need an answer fast or want a different perspective, ChatGPT is usually where I go.

Claude Code is where the actual building happens. It's Claude in my terminal, working directly with my codebase. I spent time earlier this year with tools like v0.dev, Lovable, and Cursor - they were fun to explore. But as the models have gotten better and my approach has gotten more formalized, I get better results working directly with Claude Code. Less abstraction, more control.

Codex at my day job. It plays nice with existing security policies, which matters in larger organizations.

The real trick: making them challenge each other

Here's what's become central to how I work: I don't just use multiple AIs - I make them collaborate and challenge each other.

Research phase. I start by asking both Claude and ChatGPT the same question. Same prompt, both tools. I share their answers with each other. Whichever one has a better take becomes the foundation for the next step.

Building the PRD. I use the stronger answer to develop a detailed product requirements doc. Then I ask the other AI: what are the strengths and weaknesses of this? What would you recommend improving? I bring that feedback back to the first one. Repeat back and forth until we get alignment.

This process validates assumptions, challenges weak thinking, and fact-checks the entire vision before I write a line of code.

Technical specification. Same approach. I develop the spec with one AI, then ask the other to challenge it. Where are the gaps? What edge cases are we missing? What would break?

Task breakdown. Once the spec is solid, I break it into modular tasks that can be built and tested independently. Then I ask Claude to generate a series of prompts to hand off to our "AI Development team" - which is really just Claude Code.

At this point I have great project context, pressure-tested from multiple angles, packaged up for development.

The handoff

I bring everything to Claude Code and watch the magic happen. The detailed specs, the validated requirements, the broken-down tasks - all of it goes into the context. Claude Code usually delivers amazing results when it has this level of detail to work from.

If we get stuck or something goes wrong, I'll ask ChatGPT for technical advice. Fresh perspective, different training data, sometimes sees things Claude misses. But honestly, with good specs and clear requirements, Claude Code rarely gets stuck.

The infrastructure

MCP servers tie everything together. I wrote about what MCP is last month - it's how I connect my AI tools to external context. I run servers for project context, file access, and a few other things.

This is the part most people miss. The models are commoditizing. What matters is what context they have access to and how they're connected to your actual work.

What I stopped using

Earlier this year I was bouncing between a lot of tools. Cursor, v0, Lovable, local models through Ollama. Some of that was useful exploration. But as my workflow has tightened up - more emphasis on specs, requirements, and cross-validation - I've found I need fewer tools, not more.

The models are good enough now that the bottleneck isn't capability. It's context and direction. Give a good model clear requirements and relevant context, and it'll build what you need.

The workflow in practice

  1. Research with both Claude and ChatGPT - same question, compare answers
  2. Cross-pollinate - share answers between them, pick the stronger foundation
  3. Build the PRD - develop with one, challenge with the other, iterate until aligned
  4. Technical spec - same challenge process
  5. Break into modular tasks
  6. Generate development prompts
  7. Hand off to Claude Code with full context
  8. If stuck, get a second opinion from ChatGPT

The key insight: re-explaining your project to different AIs isn't wasted effort. It's quality control. Each time you bring in a fresh perspective, you're pressure-testing your thinking. The back-and-forth is the process.

More on how I maintain context across all of this soon.