Getting Started with Next JS

A simple guide for Next JS, a popular open-source React front-end web framework.

Next JS is a popular web framework built on top of React that provides out-of-the-box many hot features used in modern web development: static and server rendering, smart bundling, Typescripts support without a complex configuration.

Next JS - Open-Source React Framework.

To start using Next JS a minimal programming kit should be already installed with some of the tools:

  • A modern editor - VSCode or Atom

  • Nodejs - used in Javascript-based products and tools

  • Yarn - a popular package manager for NodeJS (better than NPM)

  • GIT - a command-line tool used to download sources from Github

Once we have this minimal set of tools, we can install Next JS using npm or Yarn.

$ npm install [email protected]
// OR
$ yarn add nextjs

Hello World in Next JS

In this section, a simple Hello World project will be created using the console and a code editor.

The source code can be downloaded from Github: Next JS Hello

Step #1 - Create project directory

$ mkdir hello-nextjs
$ cd hello-nextjs

Step #2 - Execute npm init to generate package.json for our project with minimal information:

$ npm init
This utility will walk you through creating a package.json file.
...

During the process, we can use the defaults for all questions. In the end, npm will ask to confirm the information and the file is saved.

Step #3 - Install dependencies

npm install next react react-dom
# OR
yarn add next react react-dom

Step #4 - Create a simple page

Next JS expects the React content in the pages directory and our simple page is saved in this location.

// pages/index.js
import React from "react";
export default () => ( < div > Hello Next JS! < /div>);

Step #5 - Added scripts to the package.json file

// Contents of package.json
...
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "next dev",
"build": "next build",
"start": "next start"
}
...

Once we have saved the file, we can start this simple open-page Next JS project:

$ yarn dev

The command will print a few messages in the terminal and serve the page on port 3000

$ next dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
event - compiled successfully
event - build page: /next/dist/pages/_error
wait - compiling...
event - compiled successfully
event - build page: /
wait - compiling...

By visiting the project in the browser, we should see our Hello World message:

Next JS - Hello World Sample

A Real Next JS Sample

Obviously, the above sample is pretty simple and minimal, just to make curious the audience. In this section is mentioned a production-ready Next JS sample released by Creative-Tim as an open-source project.

Next JS Material Kit - is a modern UI Kit for Next JS

Next JS Material Kit is a Free Material Design Kit made for NextJS, React, and Material-UI. Next JS Material Kit is built with over 100 individual frontend elements, giving you the freedom of choosing and combining. All components can take variations in color, which you can easily modify using SASS and JSS (inside JS files) files and classes.

How to build the project

Step #1 - access the product page and download/unzip the code

The product can be downloaded from the public repository: Next JS Material (Github).

Step #2 - Change the current directory inside the project and install dependencies

$ npm install
// OR
$ yarn

Once the depenedencies are installed, we can start the project in development mode:

$ npm run dev
// OR
$ yarn dev

If all goes well, we should see the project running in the browser on port 3000 (the default port):

Next JS - Material Kit Components.

Special Pages

Being a flexible framework, NextJS allows us to define special page handlers used globally across the project:

Custom "Document" used to augment your application's <html> and <body> tags.

To override the default Document, and define properties like lang we need to create the file ./pages/_document.js

App.js allows us to wrap ALL pages in a special wrapper and use a persistent layout across all pages.

Using this special page, we can achieve with ease a few useful things:

  • Layout persistence between page changes

  • Use a global CSS

  • Preserve the app state when navigating app pages

Custom error pages - 404/500 Error Handlers

Next JS provides a 404 error page by default but in the same time allows us to overwrite it via pages/404.js file. The same thing we can do to handle with a custom page the 500 Error case.

For more information regarding the Next JS customization, please access:

Resources