Back to Thoughts
Next.jsReactArchitecture

Why I Switched Every Project to Next.js

After years of building SPAs with CRA and Vite, I made the switch. Here's what changed, what improved, and what I still miss.

Feb 15, 20255 min read

Why I Switched Every Project to Next.js

After years of building SPAs with Create React App and later Vite, I finally made the full switch to Next.js for every project. Here's an honest breakdown.

The Breaking Point

It started when a client complained about SEO. We had a beautiful React app — fast, smooth, well-structured. But Google couldn't crawl it properly. The time-to-first-contentful-paint was embarrassing.

What Changed

Server-side rendering was the obvious win. Pages load with content already in the HTML. No white flash, no spinner, no waiting for JavaScript to hydrate before seeing anything.

The App Router changed how I think about layouts. Nested layouts, loading states, error boundaries — all declarative. I stopped writing the same wrapper components over and over.

Image optimization out of the box. The next/image component alone saved hours of configuration on every project.

What I Still Miss

Vite's development speed is genuinely faster. The HMR in Next.js has improved massively, but for pure frontend work, Vite is still snappier.

The opinionated file-based routing is amazing until you need something it doesn't support natively. Then you're reading GitHub issues at 2am.

The Verdict

For anything with SEO requirements, a mix of static and dynamic content, or a team larger than one — Next.js wins every time. For small internal tools or purely client-side apps, I still reach for Vite.

The mental model shift from "SPA" to "hybrid rendering" is worth the learning curve.

Get in touch

LET'S WORK
TOGETHER.

anshulmanyam275@gmail.com