Context: The kit starters (skate-park, article, location, product) already use ESLint 9.33.0 with flat config, but `basic-nextjs` uses ESLint 8.56.0 with legacy `.eslintrc` format, and `basic-nextjs-pages-router` likely uses a similar legacy setup. Open issue #302 has tracked this since February 2026. Content SDK v2.0 and JSS 22.12 both ship ESLint v9 flat config in their templates, making this the expected standard for Sitecore projects.
Steps:
1. In `examples/basic-nextjs/package.json`, upgrade `eslint` from `^8.56.0` to `^9.33.0`.
2. Remove `.eslintrc.json` / `.eslintrc.js` and create `eslint.config.mjs` following the pattern from `kit-nextjs-skate-park`.
3. Update ESLint plugins to their flat-config-compatible versions.
4. Run `npm run lint` and fix any new violations.
5. Repeat for `basic-nextjs-pages-router` if it remains in the repo.
6. Close issue #302.
Acceptance criteria:
All starters use ESLint `>=9.x` with `eslint.config.mjs` flat config
No `.eslintrc.*` files remain in any starter
`npm run lint` passes in all starters
Risks: Some ESLint plugins may not have flat-config-compatible versions. Check compatibility before upgrading.