The reason I no longer use Next.js for my SaaS

I worked on two projects using both Next.js and Django. In my setup, Django managed the database, data models, and backend logic, while Next.js called Django’s API to retrieve or update data.
However, when Next.js introduced its new app router system, I had to take a step back. After over 10 years of working with Django, I had never encountered such significant changes. It felt odd to have to “relearn” a framework I had invested so much time in. I found myself spending a lot of time managing authentication to ensure smooth integration between the backend and frontend, as well as handling translations. As I explored the server-side functions in Next.js more deeply, I started to question why I didn’t just use Django templates. With Django, I wouldn’t constantly have to wonder whether I was in the frontend or backend when rendering HTML.
So, I decided to switch—I abandoned Next.js for my last project (Tiny Chat) and fully embraced Django templates. It was such a relief! My latest project didn’t require a large frontend, so the transition took just three days, and I’ve already recouped that time. No more getting stuck! Django’s documentation is clear and well-tested.
I could have integrated React into the Django templates, but I chose to use a bit of HTMX instead. I’m not a hardcore HTMX enthusiast, but I find it quite useful for simple interactions.

Regarding Nextjs, it seems like a lot of people are reaching the same conclusion for same reasons. Server side rendering and routing are undoubtedly Next’s key selling qualities, but not everyone needs or even wants them. “App structure” is a selling feature, I suppose, but right now it seems more like a limitation than an advantage.

This affects all JavaScript frameworks, in my opinion. A few years ago, angular was the way to go. Next was respond. Next, and a hundred more options later. As you pointed out, things always change within each framework. I’m a backend guy, thus the regularity of updates overwhelms me.
I have no intention of pursuing the next big thing and will continue to stick with NextJS.

I moved from next to django.js and I improved significantly, particularly with typescript typing and code sharing. Not to mention how easy it is to have SSR ready right out of the package. The only feature I miss is the readily configurable django admin panel. There are some alternatives in the world of Node.js, such as adminjs, but none quite measure up to Django’s. Additionally, the robustness of the API makes Django’s plugin system the finest; unmaintained plugins from five to seven years ago would still function, which is really impressive.

That’s the way it should be done; the next generation frameworks, like Elixir’s Phoenix Liveview, Rail’s Turbo, and PHP’s LiveWire, are all backend/template based.

Very Serious Next.The js app router is akin to a spaghetti code invitation. My experience with it was limited to duct tape repeatedly and git committing after I was able to get something to work.

Frontend developers typically conceive of backend as looking like nextjs. However, backend is actually a whole ecosystem that has nothing to do with the presentation layer; in fact, any relationship to frontend, react, or any other tool is counterproductive.

I was invested on django when I learned that it has these templates and can build a full stack with only django but I js realised that they do not support non-relational databases which is uhh idk.

I utilize the same tech stack as Nextjs, so yes, I was hesitant to switch to the app router at first. However, I eventually learned how to use it, and I can now use it rather effectively. That’s how the industry has always operated: you either sink or swim. Look for a method that will help you learn new things quickly. Once you’ve mastered it, you’ll know it for life. I now just basically migrate my Django and Next app to any new projects I work on because I have easily reusable utilities.