This repository provides a boilerplate for developing a Next.js application with modern tooling and best practices.
Clone the repository and install dependencies:
pnpm install # install deps
pnpm husky # to configure git hooks
- Create a
.npmrc
with this basic configuration
If you need an authorization to install private dependencies then add in .npmrc
also
@oncode:registry=https://gitlab.oncode.it/api/v4/projects/948/packages/npm/
//gitlab.oncode.it/api/v4/projects/948/packages/npm/:_authToken=${NPM_TOKEN}
always-auth=true
- Replace
${NPM_TOKEN}
with a generated personal gitlab access token
Start the development server:
pnpm dev
Open http://localhost:3000 in your browser.
Generate a production build:
pnpm build
Run unit and integration tests:
pnpm test
Run end-to-end tests with Cypress:
pnpm cypress open
Check for linting issues:
pnpm lint
Format code using Prettier:
pnpm format
Build and run the application in a container:
docker build -t react-next-app .
docker run -p 3000:3000 react-next-app
react-next-boilerplate
βββ .husky/ # Git hooks for enforcing code quality
βββ .storybook/ # Storybook configuration for UI component development
βββ coverage/ # Code coverage reports
βββ cypress/ # End-to-end testing setup with Cypress
βββ public/ # Public assets (favicons, images, etc.)
βββ src/ # Main source code for the application
βββ test/ # Unit and integration tests
βββ .editorconfig # Editor configuration for consistent formatting
βββ .gitignore # Files and directories to ignore in Git
βββ .gitlab-ci.yml # CI/CD pipeline configuration for GitLab
βββ .prettierignore # Files ignored by Prettier
βββ .prettierrc.json # Prettier configuration for code formatting
βββ .pnpmrc # Pnpm configuration
βββ CHANGELOG.md # Changelog for tracking changes
βββ cypress.config.ts # Cypress configuration for end-to-end testing
βββ Dockerfile # Docker configuration for containerizing the application
βββ eslint.config.mjs # ESLint configuration for linting
βββ next.config.ts # Next.js configuration file
βββ package.json # Project dependencies and scripts
βββ postcss.config.mjs # PostCSS configuration for styling
βββ tailwind.config.js # Tailwind CSS configuration for styling
βββ README.md # Project documentation
βββ tsconfig.json # TypeScript configuration
βββ vitest.config.mts # Vitest configuration for unit testing
βββ pnpm-lock.yaml # Pnpm lockfile for dependency management
Defines CI/CD pipeline for GitLab, automating testing and deployment.
Customizes Next.js settings, including API routes, rewrites, and more.
Sets up Cypress for end-to-end testing.
Defines linting rules for consistent code style.
Configures PostCSS for handling CSS transformations.
Configures Vite for fast development builds.
Configures Vitest for running unit tests efficiently.
Defines TypeScript compiler options.
Defines the Docker image setup for containerizing the application.
Defines git hooks operations.
Configures consistent code formatting across various editors.
Configures NYC for code coverage with Istanbul.
Configures Pnpm for consistent dependency management.
Configures Tailwind CSS for styling.
- Next.js
- React
- TypeScript
- Rollup
- ESLint
- Prettier
- Storybook
- Cypress
- Vitest
- GitLab
- Husky
- Vite
- EditorConfig
- Istanbul
- NYC
- Keep a Changelog
- Docker
- Tailwind CSS
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.