DEV Community

Cover image for Why I Keep Choosing Next.js — and What It’s Taught Me
Jonathan Idioseph
Jonathan Idioseph

Posted on

Why I Keep Choosing Next.js — and What It’s Taught Me

You don’t need to know every JavaScript framework to ship great products.

But for most of my projects, I keep coming back to Next.js.

It’s not hype. It’s a mix of flexibility, developer experience, and built-in performance wins that make it a solid choice for both small and large projects.

Here’s my story and what I’ve learned along the way.

How I First Met Next.js, Like most frontend devs, I started with plain React. I loved the component model, but I quickly ran into the same problems:

SEO challenges with SPAs

Too much setup for routing and performance optimization

Having to choose between server-side rendering and static generation, with no simple middle ground

Next.js came in like a toolkit that already had answers for most of these problems.

Why I Keep Choosing It

1. SSR + SSG Flexibility
Next.js lets me choose rendering strategies per page. I can make one route statically generated for speed, and another server-rendered for up-to-date data, all in the same project.

2. Performance Built In
Image optimization, smart routing, and lazy loading happen almost automatically. Less time on micro-optimizations, more time on core features.

3. Developer Experience
File-based routing, built-in API routes, TypeScript support, I spend less time wiring things together and more time building.

4. Ecosystem Fit
It works seamlessly with Tailwind CSS, Framer Motion, and my usual backend stack (Node.js, MongoDB, Firebase).

5. Multitenancy Support
One of my recent projects required multi-tenant architecture, different clients having their own custom subdomains, data isolation, and branding, all within a single codebase.
Next.js made it straightforward to handle dynamic routing and domain mapping, which saved weeks of manual work.

Lessons Learned Along the Way
No tool is perfect; I’ve had to manage longer build times on large projects.

The temptation to over-engineer is real, sometimes a plain React app is enough.

For me, Next.js isn’t just a tool; it’s a balance between performance, flexibility, and developer happiness.

Have you tried Next.js? What’s the biggest lesson it taught you, or the biggest pain point you’ve had with it?

Top comments (6)

Collapse
 
natasha_sturrock_07dac06b profile image
Eminence Technology

Great insights! I love how Next.js lets you mix SSR and SSG in one project—it really adds flexibility. The built-in performance features save so much time. Also, handling multitenancy with Next.js sounds like a huge plus! I agree, build times can get long, but overall it’s my favorite React framework. Have you tried the new app directory yet?

Collapse
 
idioseph profile image
Jonathan Idioseph

You really need to try out multi tenancy in NextJs, I think I should write an article on it.

Yes, I’m currently using the app directory and its like the power house that delivers NextJS full functionality.

Collapse
 
natasha_sturrock_07dac06b profile image
Eminence Technology

Multi-tenancy in Next.js is definitely a hot topic right now, especially with the app directory unlocking so much power. I’d be really interested to see your take on it — particularly any patterns or gotchas you’ve run into while building it.

Thread Thread
 
idioseph profile image
Jonathan Idioseph • Edited

Yeah, I just published an article on it. The major issue I had was the inability to make the Multi-tenant routing deep level. Like you will want to have routes like tenat1.app.com/dashboard/level1/level2 to point to app.com/tenat1/dashboard/level1/level2 in the NextJs file system, my article covers how I found a way around this, too.

Collapse
 
diana_agliamutdinova_741a profile image
Diana Agliamutdinova

I also switched to Next.js recently. Very informative to use its full capabilities.

What do you think about NextAuth and its integration with Firebase? Is it worth the my time or should I just write my own auth?

Collapse
 
idioseph profile image
Jonathan Idioseph

Thank you, Diana.

You can integrate them, but it’s not always straightforward. Firebase handles identity, while NextAuth handles session management. Combining them can add complexity.

If your app relies heavily on Firebase’s Realtime Database or Firestore rules (tied to Firebase Auth), just use Firebase Auth directly. It supports email/password, Google sign-in, and more without extra layers.

If you want full control over flows, token lifetimes, and sessions, you can roll your own with the Firebase Admin SDK.