-
Install dependencies
yarn bootstrap
-
initialize git hook with husky
npx husky install
-
To create a new nextJS application
nx generate @nx/next:application --name=test-project --no-interactive
-
To create a component
nx g @nx/next:component <component name> --directory shared/src/components/<component name>
Note: 📖 If you want to remove apps/projects
nx g remove <app-name>-e2e
nx g remove <app-name>
This nextjs_skeletin template has a bunch of folders, code examples, and configurations. Feel free to edit or remove them, including this README!
Folder Name 👉 Kebab case
Example: folder-name another-folder-name
File Name 👉 Kebab case
Example: folder-name another-folder-name
Variable Name 👉 snake case/ camel case
snake case: variable_name
camel case: variableName
Function Name 👉 camel case
Example: functionName
See below the file tree to understand the project structure.
View file tree
Folders and file structure.
.
├── consumer
│ ├── index.d.ts
│ ├── jest.config.ts
│ ├── next-env.d.ts
│ ├── next.config.js
│ ├── project.json
│ ├── public
│ │ └── favicon.ico
│ ├── specs
│ │ └── index.spec.tsx
│ ├── src
│ │ └── app
│ │ ├── api
│ │ │ └── hello
│ │ │ └── route.ts
│ │ ├── global.css
│ │ ├── layout.tsx
│ │ ├── page.module.css
│ │ └── page.tsx
│ ├── tsconfig.json
│ └── tsconfig.spec.json
└── owner
├── index.d.ts
├── jest.config.ts
├── next-env.d.ts
├── next.config.js
├── project.json
├── public
│ └── favicon.ico
├── specs
│ └── index.spec.tsx
├── src
│ └── app
│ ├── api
│ │ └── hello
│ │ └── route.ts
│ ├── global.css
│ ├── layout.tsx
│ ├── page.module.css
│ └── page.tsx
├── tsconfig.json
└── tsconfig.spec.json
This template features all the latest tools and web development best practices. Some of the tools are listed below 👇
✅ : Implemented
⌛ : In progress
⏰ : Thinking
Name | Description | status |
---|---|---|
Nx | Next generation build system with first-class monorepo support | ✅ |
Name | Description | status |
---|---|---|
NextJs | The React framework for the web | ✅ |
Name | Description | status |
---|---|---|
ant design | A fully featured react component library | ✅ |
@tabler/icons-react | Beautiful &consistent icons | ✅ |
Framer motion | A production-ready motion library for React | ✅ |
TanStack Table | Headless UI for building powerful tables & data grids | ✅ |
Name | Description | status |
---|---|---|
TanStack Query | Powerful asynchronous state management | ✅ |
axios | Promise based HTTP client for the browser and node.js | ⏰ |
Name | Description | status |
---|---|---|
Typescript | TypeScript is JavaScript with syntax for types. | ✅ |
react-use | TypeScript is JavaScript with syntax for types. | ⏰ |
Name | Description | status |
---|---|---|
next-intl | Next.js internationalization (i18n) | ✅ |
Name | Description | status |
---|---|---|
firebase | Authentication | ⌛ |
Next-auth | Authentication for Next.js | ⌛ |
Name | Description | status |
---|---|---|
Typescript | TypeScript is JavaScript with syntax for types. | ✅ |
Name | Description | status |
---|---|---|
👺 Eslint | Find and fix problems in your JavaScript code | ✅ |
💅 Prettier | Prettier- An opinionated code formatter | ✅ |
💩 lint-staged | Run linters against staged git files and don't let 💩 slip into your code base | ✅ |
🐶 Husky | Husky improves your commits and more 🐶 woof! | ✅ |
📓 Commitlint | Lint commit messages | ✅ |
🔢 standard version | A utility for versioning using semver and CHANGELOG generation powered by Conventional Commits | ⏰ |
Validte branch name | validate git branch name | ✅ |
Name | Description | status |
---|---|---|
React hook form | Performant,flexible and extensible forms with easy-to-use validation | ✅ |
Zod | TypeScript-first schema validation with static type inference | ✅ |
Name | Description | status |
---|---|---|
jest | A delightful JavaScript Testing Framework with a focus on simplicity | ✅ |
Testing Library | React Testing Library | ✅ |
cypress | Test. Automate. Accelerate.[end-to-end testing] | ✅ |
Name | Description | status |
---|---|---|
Partytown | Relocate resource intensive third-party scripts off of the main thread and into a web worker | ⏰ |
Name | Description | status |
---|---|---|
why-did-you-render | Notify you about potentially avoidable re-renders | ⏰ |