|5 min read

Why I Stopped Using React for Everything

React isn't always the answer. Here's when I reach for something else and why that makes me a better builder.

reactengineeringfrontend

I used to reach for React for everything. A landing page? React. A simple blog? React. A CLI tool? Okay, maybe not that last one, but you get the idea.

React became my hammer and everything started looking like a nail.

Then I started noticing the costs.

The Weight of Framework

React isn't light. Even with modern optimizations, there's a bundle size, a hydration cost, a JavaScript execution cost. For a simple landing page, this is overkill.

But more importantly, there's a cognitive cost. Every project starts with the same setup dance. State management, routing, component patterns, testing strategies. Even if I don't need most of it, I have to think about it.

This is fine when you're building complex applications. It's exhausting when you're building simple ones.

When I Use What

Here's my current toolkit:

Plain HTML/CSS — For static content. Marketing pages, documentation, simple blogs. The simplicity is a feature. No JavaScript means no hydration bugs, no state management, no runtime errors.

HTMX — For simple interactivity. I was skeptical at first, but HTMX hits a sweet spot. You get progressive enhancement without the framework overhead. Most "app-like" features don't actually need a full SPA.

React/Next.js — For complex, interactive applications. When there's significant state, frequent updates, and complex user interactions. Bifrost and Lunora are React apps. They need to be.

Svelte/Solid — For everything in between. Smaller bundle, faster runtime, simpler mental model. I'm slowly migrating some tools to Svelte.

The Framework Spectrum

The mistake is treating frameworks as binary choices. Either you're a "React developer" or you're not.

The reality is a spectrum. You should match your tooling to your problem. A marketing page has different constraints than a real-time collaboration tool.

I've become a better engineer since I stopped reaching for React by default. I think harder about what I actually need.

What I Lost

There were real benefits to the React ecosystem:

  • Familiarity: I know React cold. I can move fast in it.
  • Ecosystem: Libraries, tools, patterns — everything is well-established.
  • Hiring: It's easier to find React developers than HTMX experts.

These are real tradeoffs. I'm not pretending they don't matter.

What I Gained

But the gains outweigh the losses:

  • Speed on simple projects: No setup, no boilerplate, just HTML and CSS.
  • Better performance: Less JavaScript, faster loads, better UX.
  • Clearer thinking: Matching tools to problems makes me think harder about what I'm actually building.

The Bottom Line

React is incredible. It's the right choice for many projects. But it's not the only choice, and it's not always the best choice.

The best engineers are tool-agnostic. They reach for what works, not what they know.

I've been trying to be more tool-agnostic. It's making me better.


Know your tools. Use the right one.