Replace ESLint with oxlint across the monorepo for dramatically faster linting.
Benchmarks
Per-package linting is 77x–181x faster (seconds → milliseconds). Headline numbers:
yarn lint:lerna: 133s → 11s (12x faster) — Lerna overhead eats most of the raw gains
- CI lint job: 5m 58s → 2m 32s (2.4x faster) — bottlenecked by the types build step, not linting
- Individual packages:
core 9.6s → 53ms (181x), browser 6.8 → 55ms (124x), nextjs 10.9s → 79ms (138x)
Scope
- Replace all
.eslintrc.* files with .oxlintrc.json configs
- Update lint scripts from
eslint . to oxlint .
- Migrate all existing rules or document gaps
- Keep
eslint-config-sdk and eslint-plugin-sdk packages (published for external SDK users)
- Keep ESLint in e2e test apps (they simulate real user setups)
Known gaps
- Import sorting (
simple-import-sort) — can use oxfmt's built-in import sorting instead
- Some TypeScript-specific rules (
member-ordering, naming-convention)
- 4 custom Sentry lint rules — can be ported via oxlint JS plugins later
Tracking PR: #19134