More

Why I Stopped Using React for Web Development

By Marcos Cooper 2025-06-06 No Comments 3 Min Read

I’ve been building web applications since the early days of PHP and jQuery, before any of the modern JavaScript frameworks. And when it came time to choose one, I went with Angular. Don’t judge me, it felt more structured and opinionated, which suited the kinds of projects we were building.

Still, like many teams, we eventually adopted React, mostly because it was very difficult to find Angular developers. And over the years, we built several products with it. In retrospect, I believe it was never a good fit. In fact, I’d argue it often added more complexity than real value.

In this post, I’ll share why I don’t recommend React for most web development projects, and how simpler tools like Django and HTMX have brought clarity, stability, and productivity back to my teams.

From PHP to Angular

I started out with PHP 3, which puts me somewhere around the year 2000. I stuck with it all the way to PHP 5. Back then, jQuery was my go-to for all client-side interaction. I even had to wrestle with Internet Explorer 6. Ah yes, all those painful things we’ve thankfully forgotten.

As I said, my first choice of JavaScript framework was Angular. Angular 1, to be more specific, right during the transition between Angular 1 and 2. Something I don’t wish on anyone.

We used Angular in a few small projects and in one big project.

From Angular to React

After that, we transitioned to React. And honestly, it wasn’t much of a strategic decision, most of the developers we were hiring only knew React, so the path forward was pretty clear.

We ended up building a lot of software with React: both web and mobile applications. But we only ever used the bare bones of it. Over time, I started to question the value it added. It often made things more complicated than they needed to be, adding a thin layer of interactivity at the cost of harder-to-fix bugs and more moving parts.

Things got even worse when we adopted Redux. We never really needed client-side state management, but we did it anyway. Then came the thousand and one ways to build React applications. Every year, a new pattern. Old apps we could no longer build without updating a stack of outdated dependencies. It got messy, fast.

Looking back, the only application that still survives today is the very first one we built, with Angular. Funny how things turn out.

Lessons Learned

These days, I follow the KISS principle, Keep It Simple, Stupid! All our backends are written in Python using the Django framework. It’s stable and fast enough for everything we need. On the frontend, we serve HTML with just a touch of HTMX. That’s all. And it works beautifully.

As you can probably tell, I’ve never been one to immediately chase the latest trends. But it’s becoming increasingly clear that even well-established tools, like React, need to be critically evaluated.

Too often, engineers get so caught up in perfecting the toolset that they forget the goal is to build applications. It’s like inventing a high-tech hammer that can drive any type of nail, in any material, at any angle, when all we really needed was a regular hammer. The result? More complexity, more failure points, and no real benefit.

What I’ve learned is that, in the end, the best stack is the one that stays out of your way and lets you focus on building things that matter.

C
W
Leave a Reply

Leave a Reply

Your email address will not be published. Required fields are marked *