← Back to Episode
DevTools Radio

ESLint v10: Flat Config Completion and JSX Tracking

April 6, 2026 3:03 Episode 0

Host A: Welcome back to DevTools Radio — I'm your host, and today we're diving into ESLint version 10, which just dropped and it is a big one.

Host B: Yeah, "big one" might be underselling it a little — this feels like the release where ESLint finally rips off the band-aid it's been slowly peeling since v9.

Host A: Exactly right. The headline change is the complete removal of the legacy eslintrc configuration system. If you've been holding onto those old dot-eslintrc files, v10 is officially the end of the road for that.

Host B: So the flat config — the eslint.config.js approach — that's now the only way. No more compatibility layer, no more LegacyESLint fallback. Cold turkey.

Host A: Cold turkey is the right phrase. The good news is there's an official migration tool — you just run npx @eslint/migrate-config against your old config file, and it spits out a shiny new eslint.config.mjs you can work from.

Host B: Okay that's reassuring, because I've seen some comments from developers saying the migration path has been rough — like every plugin had slightly different flat config support and you were basically just guessing until something worked.

Host A: That frustration is real and well documented. There are already open issues against big players like eslint-plugin-react and eslint-config-next — the default ESLint setup for Next.js — where peer dependency conflicts are causing install headaches right now.

Host B: So if you're a React or Next.js developer thinking about upgrading this week, maybe give it a few weeks for the ecosystem to catch up?

Host A: Solid advice. But there's genuinely good stuff in this release too — one of my favorites is JSX reference tracking. ESLint now actually understands that when you import a component and use it in JSX, that counts as using it.

Host B: Wait, it didn't do that before? So components were getting flagged as unused even when they were literally rendering on screen?

Host A: Yep, that was a real false positive situation that plugin workarounds had to fix manually. That whole category of problem is just gone now, built right into the core.

Host B: And there's also a change to how ESLint finds its config file — instead of searching from the working directory, it starts from the file being linted. That sounds like a huge win for monorepo teams specifically.

Host A: Massive for monorepos. Different packages can now have genuinely different rules without fighting over which config wins. It's the behavior a lot of people assumed it already had, honestly.

Host B: Meanwhile, the Rust-based alternatives — Biome, Oxlint — are out there claiming fifty to a hundred times faster linting. Is ESLint feeling the pressure?

Host A: The benchmark numbers are eye-catching, though rule coverage is still the caveat — Oxlint doesn't match ESLint's full catalogue yet. But the competitive conversation is clearly heating up, and ESLint's team knows it.

Host B: Alright — bottom line for our listeners: if you're on ESLint, v10 is a meaningful upgrade worth planning for, just check your plugin compatibility before you pull the trigger.

Host A: Well said. That's a wrap for today's show — thanks for listening to DevTools Radio. Stay curious, keep your configs flat, and we'll see you next time.

Host B: Later everyone — and seriously, just run the migration tool. It's fine. Probably.

Listen to This Episode

Prefer to listen? Head back to the episode page for the full audio.