CNA (create next.js app)

Create next.js web app based on next.js.

Quick overview

npx cna new my-app
cd my-app
npm start

Then open http://localhost:8080/ to see your app.

Creating an App

You’ll need to have Node >= 6 on your machine. You can use nvm to easily switch Node versions between different projects.

To create a new app, you may choose one of the following methods:

npx

npx cna new my-app

npm

npm i -g cna
cna new my-app

Structure:

my-app
├── app/
    └── assests/
    └── components/
    └── containers/
    └── hoc/
    └── middlewares/
    └── pages/
    └── static/
    └── utils/
    └── config.js
    └── next.config.js
    └── routes.js
    └── store.js
    └── reducer.js
    └── saga.js
├── .babelrc
├── .dockerignore
├── .editorconfig
├── .eslintignore
├── .eslintrc
├── .gitignore
├── .prettierrc
├── Dockerfile
├── index.js
├── package.json
├── README.md
├── server.js

Generators

Provide commands to create new: page, container, component and HOC.

Note: You should stay at root directory of project and run commands.

cna new my-app

To create new web application with name my-app

cna page

To create new page. New page is located at pages directory.

cna container

To create new container. New page is located at containers directory.

cna component

To create new component. New page is located at components directory.

cna hoc

To create new HOC. New page is located at hocs directory.

Commands

npm start or yarn start

Runs app in development mode.

Open http://localhost:3000 to view it in the browser.

The app will automatically reload when code changes.

npm run build or yarn run build

Builds app in production mode.

It correctly bundles React in production mode and optimizes the build for the best performance.

npm run production or yarn run production

Builds and runs app in production mode.

Now your app is ready to deploy.

Demo

Screenshot

screen shot 2017-08-16 at 5 05 09 pm

iOS full screen

aug-16-2017 17-04-40

What’s inside?

Technologies

Data source

Alternatives

If you don’t agree with the choices made in this project, you might want to explore alternatives with different tradeoffs. Some of the more popular and actively maintained ones are: