A few weeks ago, I spent an entire evening chasing a bug in a React component that refused to re-render.
I tried useEffect
. Then useMemo
. Then stared at the dependency array like it had personally wronged me. Eventually, I fixed it — by restarting the dev server.
That’s when it hit me: React wasn’t made for people like me.
React was built for teams — with dedicated frontend engineers, design systems, review processes, and time to care about component hierarchies. I’m just trying to build a SaaS. Alone.
And as a solo dev, every layer of “modern architecture” feels like an extra wall between me and shipping.
I’m not great at React — mediocre, at best. But that’s the point. The tools I use shouldn’t need me to be great at them to get work done.
I don’t hate React. I hate how easily it turns small projects into puzzles.
The setup is never small: package managers, routing, build tools, state management, API layers, hydration. It’s an entire ecosystem just to render some HTML.
At some point, you stop writing features and start maintaining your own framework.
And no — AI coding assistants don’t make this any easier.
They’ll happily generate components, hooks, and entire pages for you. But they also multiply the cognitive load. You end up with auto-written code you didn’t fully read, logic you didn’t author, and bugs you can’t mentally trace.
AI helps you go faster — straight into the same wall.
When the code gets complex, you’re still the one debugging it at 1 a.m., trying to remember why useEffect depends on a variable that no longer exists.
Meanwhile, the old-school Model-View-Controller pattern — the one we abandoned because it wasn’t “modern” enough — still does the job.
Django, Rails, Laravel — these frameworks have one big thing React doesn’t: a consistent mental model. You don’t have to remember whether a component is server or client. You just write code that responds to requests and sends back HTML.
MVC assumes you’re one person who wants to move fast. React assumes you’re part of a team that can afford to slow down.
In MVC land, there’s no build step. No hydration mismatch. No npm install that randomly breaks after a week. You can teach a junior developer (or your future self) the whole stack in an afternoon.
The irony is that React is now rediscovering what MVC never forgot. Server components, data fetching, progressive rendering — all old ideas wearing new clothes.
And that’s fine. The web evolves. But if you’re an indie developer building your first or fifth SaaS, you don’t need to play catch-up with every new abstraction.
Complexity is not a sign of progress. It’s often just inertia.
Simplicity compounds. Every decision you don’t make leaves you more energy to focus on what matters — your users, your pricing, your roadmap, your survival.
So if your stack feels heavy, it’s not your idea that’s broken. It’s your setup.
You don’t need a front-end framework to validate your business.
You need feedback. Fast.
And for that, an old-fashioned MVC stack will get you further than a “modern” one built on a mountain of npm packages.
React is powerful — no argument there. But power isn’t the same as momentum.
For indie devs, momentum wins. Every time.