3 ms·
There have been quite a few 'Everything frameworks' over the years and some of them have had impressive adoption curves but, ultimately, they tend to fall out o
by jongjong 2y ago
There have been quite a few 'Everything frameworks' over the years and some of them have had impressive adoption curves but, ultimately, they tend to fall out of favor sooner or later because what makes them highly productive to develop with at the beginning also makes them rigid and inflexible; this tends to become a problem later on after the project which uses them has matured.
Some guardrails/constraints are good and should remain, but sometimes you want to do away with certain constraints as the project grows and requirements change. 'Everything frameworks' tend to fall short in the long run.
Personally, I didn't get into Next.js because I didn't see the value in server-side rendering (SSR). IMO, if you want good SEO, you should make a plain HTML landing page (avoid single page JS app)... Single page apps are good for applications like dashboards and control panels; but note that these applications are usually private and require log in... So you don't want those to be indexed by search engines anyway.
It seems like Next.js serves a relatively narrow set of use cases. I've come across many cases of people wanting to use Next.js for their next project because they want to get on the hype bandwagon and they have a vague sense that it will help their career prospects... But in almost all cases, the benefit of Next.js boils down to SSR and after some questioning "Why do we need SSR for this?" it turns out that we don't.
I have come across several projects which used Next.js but didn't use SSR and in one case, the founder openly stated that they didn't like using this aspect of it... The attempt by Next.js to blur the boundary between client and server is often ill-informed and a potential source of security vulnerabilities. So really, the only thing which Next.js brought to the table in that case was the file/folder structure... Not sure that's a good reason to add such a substantial dependency.