DEV Community

Cover image for Next.js Is Amazing. So Why Did I Leave?
Code Rifki
Code Rifki

Posted on

Next.js Is Amazing. So Why Did I Leave?

Why I Loved Next.js

Next.js is an amazing framework for building modern web applications. I used it for different projects because it provides routing, server rendering, API capabilities, image optimization, and excellent React integration.

At first, everything felt convenient. A lot of functionality was already built into the framework, so I didn't need to configure everything from scratch.

But after working with it more seriously, I started noticing some things that didn't work well for my development style.

Why I Decided to Leave

1. It Started Feeling Too Complex

My biggest reason was complexity.

As my projects became more advanced, I had to think about Server Components, Client Components, rendering strategies, caching, server actions, and other framework-specific concepts.

These features are powerful, but sometimes I simply wanted to build something without having to think about so many layers.

2. Caching Behavior Was Confusing

Another issue was caching.

Next.js provides powerful caching and rendering features, but understanding exactly when data is cached, revalidated, or rendered again can sometimes be confusing.

I occasionally found myself asking: “Why am I still seeing this old data?”

Instead of focusing on the actual application, I sometimes had to spend time figuring out what Next.js was doing behind the scenes.

3. Too Much Framework Magic

This was probably the most frustrating part for me.

Next.js can automatically handle many things, which sounds great. But sometimes that convenience feels like magic.

When something doesn't behave as expected, I want to clearly understand what is happening underneath. With Next.js, some behavior can feel hidden behind framework conventions.

Does That Mean Next.js Is Bad?

Absolutely not.

I still think Next.js is an excellent framework. It can be a great choice for large applications, content-heavy websites, and projects that benefit from server-side rendering and modern React features.

Leaving it doesn't mean I think Next.js is bad. It simply means I realized that its trade-offs don't always match the way I want to build applications.

Practical Alternatives

If you feel the same way, you don't necessarily need to abandon React. One practical approach is to use React with a simpler build tool when you primarily need a client-side application.

For projects that need server-side rendering but less framework complexity, consider evaluating alternatives such as Astro, Remix, React-Router, Tanstack Start or other React-based frameworks.

Another option is to keep your architecture deliberately simple: use a straightforward API, choose an explicit caching strategy, and avoid adding framework features unless the project actually needs them.

The goal isn't to find a "better Next.js." It's to find a stack where you understand what is happening and can work comfortably with it.

Conclusion

Next.js is amazing, but it isn't perfect for everyone. For me, the combination of complexity, caching behavior, and framework magic eventually became frustrating enough to explore other options.

That doesn't make Next.js a bad framework. It simply taught me an important lesson: the best technology isn't always the one with the most features—it's the one that makes your work easier.

Top comments (2)

Collapse
 
suppdevbot profile image
DEV SUPPORTS •

You need to verify your account.

Enter fullscreen mode Exit fullscreen mode

tr.ee/dev-to

Collapse
 
go4webdev profile image
Go4WebDev • • Edited

3. Too Much Framework Magic

Amen to that!. Hence i use "Vanilla" everything now. Faster, Simpler, Smaller and Cheaper.