Migrate linting and formatting to Oxc - #2258
Merged
SawyerHood merged 2 commits intoAug 22, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why Oxlint + Oxfmt
The main payoff is materially faster feedback without broadening the change.
Before: 42.2 seconds with ESLint
After: 2.2 seconds with Oxlint, about a 19x improvement.
That shortens the edit-check loop locally and reduces time spent in the lint portion of CI.
The migration also simplifies the direct toolchain:
This repository is a good fit for the migration:
The remaining compatibility gaps are bounded and visible. Oxlint does not implement no-restricted-syntax, so the three repository-specific AST policies live in a small local plugin and have been exercised against deliberate violations. The native React analyzer reports additional existing findings; preserve-manual-memoization remains warning-level so this tooling migration does not become unrelated application cleanup. Oxfmt is not byte-identical to Prettier, but with compatibility-focused settings it identifies only 30 additional files beyond the existing baseline.
Taken together, this gives the repository a substantially faster default workflow now, removes direct legacy lint and format dependencies, and keeps the migration reversible and reviewable rather than coupling it to thousands of formatting changes.
Verification
Formatting baseline
The previous Prettier check reported 459 existing files. Oxfmt reports 487 with compatibility-focused settings, including only 30 files not previously reported by Prettier. This PR intentionally does not reformat the repository.