Migrate ESLint 8 or Less to ESLint 9
A practical guide to moving from ESLint 8 to flat config in ESLint 9, with a cleaner setup for React, Next.js, and TypeScript projects.
In series: ESLint in Practice · Part 1
A focused track on config design, migrations, and the standards work that keeps code reviews sharper without slowing teams down.
Linting only helps when it reduces ambiguity instead of creating more noise. This series collects the ESLint writing on the site into one track so migrations, reusable configs, and code-quality standards feel connected instead of scattered.
It is the best fit for engineers who want stronger defaults, cleaner pull requests, and tooling that scales with real teams.
Recurring themes that shape the articles in this track.
Read these in order if you want the clearest progression from foundations to deeper implementation decisions.
Part 1
A practical guide to moving from ESLint 8 to flat config in ESLint 9, with a cleaner setup for React, Next.js, and TypeScript projects.
In series: ESLint in Practice · Part 1
Part 2
Reusable ESLint library for React, Next.js, and TypeScript projects. Enforces code quality with flat config support and simplifies the move from ESLint 8 to 9.
In series: ESLint in Practice · Part 2
Part 3
Why I deprecated @santi020k/eslint-config-santi020k in favor of a composable monorepo with clearer packages, better docs, and stronger DX.
In series: ESLint in Practice · Part 3