Skip to content

Linting & Formatting

Our templates come with pre-configured ESLint and Prettier setups to ensure consistent code style and catch potential issues early.

ESLint Configuration

The template uses a modern ESLint configuration with Next.js and TypeScript support. You can find the configuration in eslint.config.mjs:

We use the following eslint plugins and presets.

  • next/core-web-vitals,
  • next/typescript,
  • eslint:recommended,
  • plugin:@typescript-eslint/recommended,
  • plugin:import/recommended,
  • plugin:import/typescript,
  • plugin:prettier/recommended,
  • next,
  • plugin:jsx-a11y/recommended,

We autoformat and sort imports.

Prettier Configuration

Code formatting is handled by Prettier. The configuration is in .prettierrc:

{
"trailingComma": "all",
"tabWidth": 2,
"semi": true,
"useTabs": false,
"singleQuote": true,
"printWidth": 80,
"jsxSingleQuote": false,
"plugins": ["prettier-plugin-tailwindcss"],
}

We autoformat Tailwind CSS class order.

VS Code / Cursor Integration

Install the recommended VS Code extensions:

  • ESLint
  • Prettier

The template includes a .vscode/settings.json file to enable format on save and auto-fix linting issues.

{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"editor.defaultFormatter": "esbenp.prettier-vscode"
}

Running Linting Manually

Terminal window
npm run lint