Why I Stopped Chasing Every New Framework
The web dev ecosystem moves fast. After years of hopping frameworks I finally found a stack I can stop second-guessing — and why that matters for clients.
There's a new JavaScript framework every six months. A new meta-framework every year. A new rendering strategy every quarter. For a while I tried to keep up with all of it.
That was a mistake.
Not because learning is bad — learning is great. The mistake was letting novelty drive stack decisions instead of outcomes. Every time I switched frameworks I paid a tax: ramp-up time, dead documentation, half-baked tooling, and edge cases that weren't discovered yet because nobody had run it in production long enough.
What I settled on and why
Next.js with the App Router covers most of what I build: marketing sites, client portals, content-heavy apps. It has React Server Components for real performance, a mature deployment story on Vercel, and enough community surface area that when I hit a weird edge case, someone else has usually hit it first.
Firebase handles auth and data. It's not perfect — the security rules syntax has a learning curve and the free tier limits will surprise you if you're not watching — but the operational overhead is nearly zero. No database to manage. No auth server to maintain. For a solo shop, that's worth a lot.
TypeScript is non-negotiable at this point. The tooling is too good and the feedback loop is too fast to write plain JavaScript on anything that lasts longer than a weekend.
The client angle
Clients don't care what framework you use. They care whether the site is fast, whether it works on mobile, and whether they can update their content without calling you. Stable, well-supported tools make that easier to deliver consistently.
When a client comes back six months later to add a feature, I don't want to be relearning a framework I adopted prematurely. I want to open the repo and know exactly where I am.
The actual cost of chasing shiny things
Every hour spent evaluating a new tool is an hour not spent building. That's fine for side projects and learning — genuinely fine. But on client work it's a liability unless the new tool directly solves a problem you actually have.
I still try new things. But I try them on personal projects first, run them to a point where I've hit the rough edges, and only then consider whether they belong in the production stack.
The framework treadmill is real. Getting off it was one of the better decisions I've made as a developer.