An enterprise Next.js template application showcasing - Testing strategies, Global state management, Custom enviornments, a network layer, component library integration, localization, Image loading, Custom App, Custom document, IE 11 compatibility and Continuous integration & deployment.
We’re always looking for people who value their work, so come and join us. We are hiring!
- Global state management using
redux
- Side Effects using
redux-saga
- API calls using
api-sauce
- Styling using emotion
- Reusing components from Ant design
- Translations using
react-intl
- Custom enviornments using
emv-cmd
- Image loading using
next-images
- IE 11 compatible
-
Global state management using Redux Sauce
Take a look at the following files
-
Computing and getting state from the redux store using Reselect
Take a look at the following files
-
Side effects using Redux Saga
Take a look at the following files
-
API calls using Api Sauce
Take a look at the following files
-
Styling components using Emotion
Take a look at the following files
-
Reusing components from Ant design
Take a look at the following files
-
Translations using React Intl
Take a look at the following files
-
Custom enviornments using env-cmd for more flexibilty env-cmd
Take a look at the following files
Note:-
-
To avoid confusion & conflicts, Please use custom enviornments only instead of next.js default enviornment setup
-
To include env variables on the client side just add NEXT_PUBLIC before the enviornment variable name Example :
NEXT_PUBLIC_SAMPLE_VARIABLE: some_value
.
Example usage for running dev server with .env.development
env-cmd -f environments/.env.development next dev
-
-
CI/CD using Github Actions. The CI pipeline has the following phases
- Checkout
- Install dependencies
- Lint
- Test
- Build
The CD pipeline has the following phases
- Checkout
- Install dependencies
- Build
- Deploy
Take a look at the following files
-
Testing is done using the @testing-library/react.
Take a look at the following files
-
Development:
yarn start:dev
-
Production:
yarn start:prod
-
Development:
yarn build:dev
-
Production:
yarn build:prod
yarn custom:dev
- @app -> app/
- @components -> app/components/
- @services -> app/services/
- @utils -> app/utils/
- @themes -> app/themes/
- @store -> app/store/
- @images -> app/images/
Take a look at the following files