Why Next.js ??
Published: 2022-01-26 22:39:28

This article is based on personal experience. I have spent a year learning and using React and i have also spent a couple of months on Next.js. Below is my opinion on both and why i prefer Next.js

## INTRO

I have enjoyed using React.js for the past year. It makes creating UI's simpler and that is what i appreciate about it. As a frontend developer, it is only right to be curious about trending tools and frameworks from time to time hence i tried my hands on Next.js and i was totally blown away.

## What is Next. js ?

Nextjs is an open source React framework created by Vercel. What makes it efficient is that it enables several extra features, including pre-rendering, web app preview and fast compilation. 

## What is React. js ?

React is a JavaScript library developed by Facebook now Meta , that is traditionally used to build sing page web applications rendered in the client's browser with JavaScript.

## Difference between React.js and Next.js 

Just like many other frameworks, Next.js and React.js have their perks and drawbacks. The main differences between these two are based on the following paramters which are essential in Software development.

### Documentation

For a new user of a framework, documentation reliability is a must. The best of documentations makes learning how to use the product easy, provides a limited number of user entry points, simplify the product and help cut support costs. Next.js provides a "learn-by-doing" documentation set that takes you through a number of basic features like component creation, serverside rendering and many more. React also takes a similar route with instructional writeups and videos that teaces the fundamentals.

### Easiness to Learn

With the availability of a ton of resources of both React and Next.js , learning these frameworks is made easier. However, React has a relatively lower degree of difficulty in learning. Also, you really don't have any choice here since you must know React if you want to know Next.js.


### Set-up

Facebook created create-react-app which comes with a set configuration for using React hence you would have to disconnect from the predetermined create-react-app setup if you want to configure React yourself. It doesn't come with great support for configuration making it difficult to make definite changes.

However, with Next.js you can manually configure files such as _eslintrc_ , _jest.config_ , _babelrc_ and it also comes with added support.

### Maintenance

In this category, both Next.js and React.js rollout regular stable updates which more often than not improve on existing versions. When it comes to maintenace all you have to do is keep your version up to date.

### Popularity and Community

The popularity of a framework and an active community is an important metric because when you face issues when using a product you have a community to fall to who would be willing to help you out in most situations. 

React has a very high popularity in the tech ecosystem and the React community has been available for a longer time, there are tons of materials in the form of videos, write ups, blogs, publications and frequently asked questions available online.

Next.js is fast rising and also has a lot of materials online for anyone who wants to learn or enquire.


### Talent Pool

Popularity of a framework has a corelation with the number of developers who learn how to use that framework. React developers are in high demand and have a relatively higher talent pool. 

Before you can become a Next.js developer you must understand React and know how to use it hence there is no comparison here. It is much more easier to find a React developer than to find a Next.js developer

## Advantages and disadvantages

### Advantages of React.js 

- It has a great documentation and an amazing community, anyone with experience with Javascript can easily grasp the concept and use it in building web applications.

- With the continual improvements being made all the time it has become simpler building powerful web applications with React.

- React addresses the issue of SEO by aiding designers in identifying various web crawlers

- React enforces the use of reusable components which makes it easier to use and makes code light weight.

### Disadvantages of React

- React is a library and its basic functionality is for building UIs hence it requires you to use a lot of third party tools in other for it to react its full potential

- The regular updates means developers always have to keep up or risk not being able to efficiently use new versions

### Advantages of Next.js 

- Next.js unlike React, offers a lot of inbuilt tools hence there is a limited requirement for third party tools. You can develop a complex application using only inbuilt tools in Next.js

- It offers enhanced User experience as compared to React.

- Web applications built with Next.js is faster because of features such a server-side rendering and static site creation.

- Images in Next.js are automatically scaled and adjusted to fit into varying viewports

### Disadvanatges of Next.js

- The community support for Next.js is relatively smaller than that of React.

- Next.js has a routing system which is file based and hence are not enough for some use cases. Developers need to have proficient knowledge in Node.js if you intend creating dynamic routes in Next.js 

###  Again, **Why Next.js ** ??

In trying to answer this question and carefully analysing the pros and cons i realise it boils down the what you want to develop with those tools. In the end it has more to do with which you understand better and what you want to use the tools for. I am biased towards Next.js because it makes developing web applications much easier for me.