Back to blog
Opinion

Why I Still Reach for React in 2026

Kim BoenderKim Boender
March 30, 2026 4 min read
Why I Still Reach for React in 2026

As a freelance senior frontend developer with over 15 years of experience, I've had the luxury, and sometimes the burden, of working with a lot of frameworks. Vue.js is my daily driver and the tool I'm most opinionated about. But React keeps showing up. And honestly, I keep letting it in.

Here's why.

It's not about loyalty, it's about fit

When I joined DPDK back in 2020, they were a Next.js shop. Dynamic marketing sites, tight motion design requirements, server-side rendering out of the box. Next.js made sense, and by extension, so did React. I didn't fight it. I embraced it.

That experience taught me something I still carry today: the best developers aren't married to a single tool. They understand what a project needs and pick accordingly. React's ecosystem, especially when paired with Next.js, is genuinely hard to beat for certain use cases.

What React gets right

After years of going back and forth between Vue and React, here's what I think React genuinely does well.

The mental model is clear (once it clicks). React's core idea, UI as a pure function of state, is elegant. When you internalize it, you stop fighting the framework. useState, useEffect, useReducer: they're not magic. They're well-named primitives that push you toward thinking declaratively.

function Counter() {
  const [count, setCount] = useState(0);
  return (
    <button onClick={() => setCount(c => c + 1)}>
      Clicked {count} times
    </button>
  );
}

Simple. Predictable. Testable.

TypeScript integration is first-class. I'm a TypeScript person. Always have been. React's type support has matured enormously. Between typed props, generics in hooks, and the excellent @types/react package, you get a solid DX that catches bugs before they ever hit production.

interface ButtonProps {
  label: string;
  onClick: () => void;
  variant?: 'primary' | 'secondary';
}

const Button: React.FC<ButtonProps> = ({ label, onClick, variant = 'primary' }) => (
  <button className={`btn btn--${variant}`} onClick={onClick}>
    {label}
  </button>
);

Explicit, self-documenting, zero surprises.

The ecosystem is enormous. Need a form library? You've got React Hook Form and Formik. State management? Zustand, Jotai, Redux Toolkit. Data fetching? TanStack Query is arguably the best in any framework. Animation? Framer Motion is stunning. The depth of the React ecosystem means you're rarely starting from scratch, which matters enormously on freelance projects where time is always a constraint.

Next.js changed the game. I can't talk about React in 2026 without talking about Next.js. The App Router, React Server Components, streaming SSR: these aren't incremental improvements. They're a fundamentally different way of thinking about the frontend/backend boundary.

// A Server Component: no "use client", no useEffect, no loading state
async function BlogList() {
  const posts = await db.post.findMany({ orderBy: { date: 'desc' } });
  return (
    <ul>
      {posts.map(post => (
        <li key={post.id}>{post.title}</li>
      ))}
    </ul>
  );
}

Zero JavaScript shipped to the client for this component. The data fetching happens on the server. It just renders HTML. This is powerful, and honestly, it's where the web is heading.

Where Vue still wins for me

I'll be honest: for most of my freelance work, Vue 3 + Nuxt is still my go-to. The Composition API is a joy to use. Single-file components keep logic, template, and styles co-located in a way I find highly readable. And the Dutch tech ecosystem I operate in has strong Vue adoption.

But the honest answer to "Vue or React?" is: it depends. Team familiarity, existing codebase, ecosystem requirements, hosting constraints. These all matter more than framework preference.

My advice to developers picking up React today

Start with TypeScript from day one. Don't shortcut this. Typed components and hooks will save you hours of debugging.

Learn the hooks deeply before reaching for libraries. Understand useCallback, useMemo, and useRef before you abstract them away.

Pick up Next.js early. Vanilla Create React App is effectively legacy at this point. Next.js is where the community has moved.

Don't ignore Server Components. They're confusing at first, but once they click, you'll wonder how you built without them.

Use TanStack Query for data fetching. It handles caching, refetching, loading states, and error states better than anything you'll write yourself.

Final thoughts

I've been building for the web for 15+ years. I've watched jQuery give way to Angular, Angular give way to the framework wars, and those wars slowly settle into a React-dominated landscape with strong challengers. React won the mindshare battle, and for good reason: it's composable, predictable, and backed by one of the largest developer ecosystems in history.

Is it perfect? No. The learning curve for hooks is real. Server Components introduce genuine complexity. The ecosystem choice paralysis is a genuine problem for newcomers.

But when a client asks me to join a React project, I don't hesitate. I know the tooling, I know the patterns, and I know how to ship production-quality code with it. That's all a framework needs to do.

Frequently Asked Questions

Should I learn React or Vue as a beginner in 2026? +
Both are excellent choices, but they have different strengths. React has a larger job market and ecosystem, especially in international companies and startups. Vue has a gentler learning curve and is very popular in the Netherlands and parts of Asia. If you're unsure, start with React — the concepts you learn (components, state, props, reactivity) transfer directly to Vue and other frameworks anyway.
Do I need to use TypeScript with React? +
You don't need to, but you really should. TypeScript with React gives you typed props, typed hooks, and typed event handlers — which eliminates a huge class of runtime bugs before they ever reach your users. The initial setup cost is minimal, and the long-term payoff in maintainability and confidence is enormous. Every project I start today uses TypeScript from day one.
What is the difference between React Server Components and regular React components? +
Regular React components run in the browser and can use state, effects, and event handlers. React Server Components (RSCs), introduced with the Next.js App Router, run only on the server — they can fetch data directly, access databases, and read the filesystem, but they cannot use useState or useEffect. The key benefit is that RSCs ship zero JavaScript to the client, which significantly improves performance. You can mix both in the same app: RSCs for data-heavy, static parts; client components for interactive elements.
Is Create React App still worth using? +
No — Create React App is effectively unmaintained and legacy at this point. For new projects, use Next.js if you need SSR, static generation, or a full-stack solution. If you want a pure client-side SPA without the Next.js layer, Vite with the React plugin is the modern replacement — it's fast, actively maintained, and supports TypeScript out of the box.

Try it yourself

JSON Formatter

Format, validate, and beautify JSON instantly

Open JSON Formatter