DEV Community

[Comment from a deleted post]
Collapse
 
pranay_rauthu profile image
pranay rauthu

It depends on your client project. Here are few things you need to consider while choosing nextjs.

  • SEO
  • performance
  • Project size
  • developers taste.
  • life span of project and maintainance.

Here is my personal opinion on nextjs, nextjs oversimplifies the most of the configurations and workflow which is good for pet projects. but for enterprise applications I recommend creating your custom framework.

Collapse
 
lesbaa profile image
Les • Edited

I disagree.

It's a lot more flexible than you are assuming here.

Next.js is built in a way that gives you access to a lot of the lower level SSR stuff. Using what you need when you need it. It is extremely flexible in what it does.

And there's plenty of enterprise applications out there that use next.js. I'd argue that for 90% of applications it would fit the bill. Unless you needed extremely fine grained control on the rendering process / routing (next already gives you significant control over both of these) or if you have a massive budget / team to build your own universal set-up (even then given the technical technical debt and maintenance cost that comes along with this would still push me in the direction of using next.js) or if you had to integrate a non-react render pipeline / build process app, but even then, because of the "use-what-you-need" set-up of next.js I still think you could pipe that in.

Eric Elliott, Dan Abramov and many other people who are much smarter than I sing it's praises.

Also, I'd argue SEO is kind of irrelevant here, it's server rendered and easily crawlable by bots. As with any rewrite or changes to mark-up, content etc it will have an effect. But the framework used to render the app shouldn't have an effect. Next does code splitting for page level components, so in terms of asset sizes too, that's up to the Dev team to keep an eye on.

However, I am a total fanboy 😀.

Anyways, I'd say it's far more powerful than just for use in pet projects.