.oxlintrc.json
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": [
"eslint",
"typescript",
"react",
"jsx-a11y",
"nextjs",
"import",
"oxc",
"unicorn"
],
"categories": {
"correctness": "error"
},
"env": {
"browser": true,
"es2024": true,
"node": true
},
"settings": {
"jsx-a11y": {
"components": {
"Image": "img"
}
}
},
"rules": {
"no-var": "error",
"prefer-const": "error",
"prefer-rest-params": "error",
"prefer-spread": "error",
"typescript/ban-ts-comment": "error",
"typescript/no-array-constructor": "error",
"typescript/no-duplicate-enum-values": "error",
"typescript/no-empty-object-type": "error",
"typescript/no-explicit-any": "error",
"typescript/no-extra-non-null-assertion": "error",
"typescript/no-misused-new": "error",
"typescript/no-namespace": "error",
"typescript/no-non-null-asserted-optional-chain": "error",
"typescript/no-require-imports": "error",
"typescript/no-this-alias": "error",
"typescript/no-unnecessary-type-constraint": "error",
"typescript/no-unsafe-declaration-merging": "error",
"typescript/no-unsafe-function-type": "error",
"typescript/no-unused-expressions": "warn",
"typescript/no-unused-vars": "warn",
"typescript/no-wrapper-object-types": "error",
"typescript/prefer-as-const": "error",
"typescript/prefer-namespace-keyword": "error",
"typescript/triple-slash-reference": "error",
"react/display-name": "error",
"react/jsx-key": "error",
"react/jsx-no-comment-textnodes": "error",
"react/jsx-no-duplicate-props": "error",
"react/jsx-no-undef": "error",
"react/no-children-prop": "error",
"react/no-danger-with-children": "error",
"react/no-direct-mutation-state": "error",
"react/no-find-dom-node": "error",
"react/no-is-mounted": "error",
"react/no-render-return-value": "error",
"react/no-string-refs": "error",
"react/no-unescaped-entities": "error",
"react/require-render-return": "error",
"react/jsx-no-target-blank": "off",
"react/no-unknown-property": "off",
"react/react-in-jsx-scope": "off",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
"react-hooks/static-components": "error",
"react-hooks/use-memo": "error",
"react-hooks/preserve-manual-memoization": "error",
"react-hooks/incompatible-library": "warn",
"react-hooks/immutability": "error",
"react-hooks/globals": "error",
"react-hooks/refs": "error",
"react-hooks/set-state-in-effect": "error",
"react-hooks/error-boundaries": "error",
"react-hooks/purity": "error",
"react-hooks/set-state-in-render": "error",
"react-hooks/unsupported-syntax": "warn",
"import/no-anonymous-default-export": "warn",
"jsx-a11y/alt-text": ["warn", { "elements": ["img"], "img": ["Image"] }],
"jsx-a11y/aria-props": "warn",
"jsx-a11y/aria-proptypes": "warn",
"jsx-a11y/aria-unsupported-elements": "warn",
"jsx-a11y/role-has-required-aria-props": "warn",
"jsx-a11y/role-supports-aria-props": "warn",
"nextjs/google-font-display": "warn",
"nextjs/google-font-preconnect": "warn",
"nextjs/next-script-for-ga": "warn",
"nextjs/no-async-client-component": "warn",
"nextjs/no-before-interactive-script-outside-document": "warn",
"nextjs/no-css-tags": "warn",
"nextjs/no-head-element": "warn",
"nextjs/no-html-link-for-pages": "error",
"nextjs/no-img-element": "warn",
"nextjs/no-page-custom-font": "warn",
"nextjs/no-styled-jsx-in-document": "warn",
"nextjs/no-sync-scripts": "error",
"nextjs/no-title-in-document-head": "warn",
"nextjs/no-typos": "warn",
"nextjs/no-unwanted-polyfillio": "warn",
"nextjs/inline-script-id": "error",
"nextjs/no-assign-module-variable": "error",
"nextjs/no-document-import-in-page": "error",
"nextjs/no-duplicate-head": "error",
"nextjs/no-head-import-in-document": "error",
"nextjs/no-script-component-in-head": "error"
},
"ignorePatterns": [
".next/**",
".claude/worktrees/**",
".vercel/**",
"convex/_generated/**",
"node_modules/**"
]
}