The most common technical question I get before someone starts a subscription is: "Do you do React?"
No. I build exclusively with Vue 3, Nuxt 3, TypeScript, and Tailwind.
This sometimes surprises people — React is the dominant framework, the safe default, the thing every job description asks for. Choosing Vue isn't neutral. So let me explain the actual reasons, not the marketing-speak version.
The honest answer about why not React
React is a good library. The ecosystem is massive. If you already have a React codebase, you should keep building in React — you have existing patterns, existing developers who know it, existing component libraries. Switching would be a bad decision.
But I don't build in React because I'm not a React developer at senior level. I'm a Vue developer at senior level. There's a difference.
Senior-level output requires deep familiarity. A senior engineer knows when to reach for Pinia vs. Vuex, how to structure server routes in Nuxt, when hybrid rendering makes sense, how to make Vue's reactivity work for complex state, and what the footguns are. They've hit the edges and know how to avoid them.
A developer who's "proficient" in React and can also "do Vue" doesn't give you that. They give you the same patterns in a different syntax, without the depth that produces genuinely good code.
I've made the deliberate choice to go deep on one stack rather than shallow on everything. That choice is what produces senior-level output.
Why Vue specifically
The framework choice matters, but not for the reasons the internet argues about.
Single-file components are genuinely ergonomic. Having template, script, and styles in one file is a good default for product work. You can see the whole component. Refactoring doesn't require jumping between files.
The reactivity model is intuitive. Vue's reactivity (especially with Composition API and ref/reactive) makes state management predictable. When something updates, it's usually obvious why. This reduces debugging time on complex UI state.
The ecosystem is cohesive. Pinia for state management, Vue Router for routing, VueUse for composables — these are all built with the same mental model. There's less "which of the seven state management libraries should I use" decision fatigue.
None of this is a knock on React. React has perfectly good answers to all of these. The point is that Vue's answers are the ones I know well, and that familiarity translates directly to faster, cleaner code for clients.
Why Nuxt specifically
Nuxt is where the choice becomes more clearly differentiated from the React ecosystem.
Nuxt 3 is a genuinely good full-stack framework. File-based routing, auto-imports, multiple rendering modes (SSR, SSG, hybrid per-route), and server routes that let you talk to databases, call APIs, and handle auth — all in one repository.
For startup products, this matters a lot. You don't want to maintain a separate backend service for simple API routes. Nuxt's server directory lets you build BFF-style API handlers alongside your frontend. Your Stripe webhook lives next to your product dashboard. Your auth middleware lives next to your protected routes.
The hybrid rendering model is the right default for products. Static generation for marketing pages, SSR for dynamic content, SPA for highly interactive views. Nuxt's routeRules lets you configure this per-route without rebuilding your architecture:
// nuxt.config.ts
routeRules: {
'/': { prerender: true }, // static homepage
'/dashboard/**': { ssr: false }, // SPA for app
'/blog/**': { swr: 3600 }, // stale-while-revalidate for content
}
Next.js has similar functionality, but Nuxt's implementation is, in my experience, cleaner to configure and less surprising in production.
What this means for your project
If you come to me with a React codebase, I'll tell you to find a React developer. This isn't a limitation I'm apologetic about — it's how you get the right outcome.
If you're starting fresh or your product is built in Vue, you get the full benefit of someone who has shipped dozens of Vue/Nuxt applications and knows the stack at a production level.
If you're undecided on the framework for a new project, Vue + Nuxt is my recommendation for most startup use cases. It produces clean, maintainable code quickly, has excellent hosting options (Vercel, Netlify, CloudFlare Pages all support Nuxt), and the developer experience is genuinely good.
The framework decision matters less than most people think and more than they act on. Whatever you choose, go deep on it. Shallow familiarity across five frameworks produces mediocre code in all of them.