It is no secret that software development means constant learning. New languages and frameworks come out frequently. And you are required to learn to keep up to date continuously. Recently, I finally decided to pick up the NextJS. It is a newer framework that is gaining much popularity, and I can see why. After almost ten years as a software developer, focusing mostly on UI, it is a framework that impresses me from the start. It impresses me like mixins did before we had modern frameworks and like React did when released. Bellow, you can find the list of all the useful features you get out of the box when you use NextJS. Features that you should consider when choosing technology for your next project.
Just like creating a ReactJS project, it is easy to create a NextJS project. For it, you can use create-next-app with npx. Use the following command to create a project.
npx create-next-app PROJECT_NAME --use-npm --example https://github.com/vercel/next-learn-starter/tree/master/learn-starter
CSS and PostCSS are available out of the box. And with just installing one dependency, you can use SASS also.
CSS modules enable scoped CSS, which gives better-organized code and reduces bugs in it.
NextJS gives clear guidelines on structuring. All page components need to be in a folder with name pages, and NextJS builds a router according to its content. That means if you have a component named Post.js in a folder /pages/blog, this component is available in the route /blog/post.
ReactJS does support server rendering, but it far from easy to implement. NextJS enables two types of pre-rendering. Static pre-rendering executed during the build and server-side, which runs on every request. This both improves your website performance and is SEO friendly.
NextJS comes with an SWR hook that you can use to make the request. It provides you with many useful features like caching, focus-tracking, and fetching on the interval.
If you have API code, you can place it into pages/api folder. Routes work like page components, and you can have all your code in one project.
Vercel maintains NextJS, and they provide you easy integration with GitHub to deploy your application on their platform.
There are many other useful features in NextJS, but these are, in my opinion, the most useful ones. Just prerendering should give you enough of a reason to consider it for the next project.