ESLint Config Generator

Generate a modern flat-config eslint.config.js for JavaScript or TypeScript, optionally with React hooks rules and Prettier compatibility — plus the exact npm install command. Free, instant, and private — generation happens in your browser.

100% Private — Runs entirely in browserInstant calculation & resultFree, no sign-up

ESLint Config Generator

Generate a modern flat-config eslint.config.js plus the install command for the plugins you pick.

eslint.config.js
// npm install -D eslint @eslint/js typescript-eslint eslint-plugin-react-hooks eslint-config-prettier
import js from "@eslint/js"
import tseslint from "typescript-eslint"
import reactHooks from "eslint-plugin-react-hooks"
import prettier from "eslint-config-prettier"

export default tseslint.config(
  js.configs.recommended,
  ...tseslint.configs.recommended,
  { plugins: { "react-hooks": reactHooks }, rules: reactHooks.configs.recommended.rules },
  prettier,
)

Why generate flat ESLint configuration for JavaScript and TypeScript apps?

Code quality and consistent linting rules are essential for maintaining scale in professional software projects. As ESLint transitioned to version 9 and beyond, the legacy cascading .eslintrc system was deprecated in favor of the modern flat configuration format (eslint.config.js). Flat configuration simplifies rule inheritance by using plain JavaScript arrays and ES module imports, eliminating hidden configuration resolution conflicts and unpredictable plugin loading behavior.

ToolJiffy's ESLint Config Generator allows developers to quickly generate production-ready eslint.config.js setups customized for JavaScript, TypeScript, React, Node.js, and Prettier integration. In addition to generating the configuration code, the tool automatically provides tailored npm install scripts so you can set up linting in new or existing projects in under two minutes.

  • Modern Flat Config Format (eslint.config.js): Emits clean, standard ES module array structures compliant with ESLint v9+ standards, eliminating legacy .eslintrc deprecation warnings.
  • TypeScript & React Hooks Rules: Seamlessly integrates @typescript-eslint parsers alongside eslint-plugin-react-hooks to catch invalid hook dependency arrays and type errors.
  • Prettier Integration & Conflict Removal: Integrates eslint-config-prettier to automatically turn off visual formatting rules, ensuring ESLint only flags code bugs while Prettier handles code styling.
  • Automated Dependency Installation Scripts: Generates copy-paste terminal installation commands (npm install -D ...) for all required plugins, parsers, and helper packages.

ESLint flat config architecture

The ESLint flat configuration engine relies on an exported array of configuration objects evaluated sequentially. Each object in the array defines target file globs (using files patterns), language options, custom parsers, plugin maps, and rule key-value overrides.

When linting a project, ESLint matches source files against each configuration object in order. In TypeScript environments, the languageOptions block configures @typescript-eslint/parser and sets ECMAScript options such as ecmaVersion: 'latest' and sourceType: 'module'. Plugins are explicitly assigned as object properties rather than loaded via string names, making imports fully traceable by bundlers and static analysis tools.

Global file exclusions are configured at the root of the array using an object containing only an ignores property (for example, excluding dist/, build/, coverage/, or node_modules/). By disabling code formatting rules via eslint-config-prettier, your CI/CD pipeline benefits from faster linting execution speeds and zero friction between developer formatting tools and continuous integration checks.

Client-side security for private linting configurations

All linting rules, custom plugin definitions, and package installation commands are computed locally inside your browser memory. ToolJiffy maintains a zero-cloud policy, ensuring your code preferences and team standards remain completely private.

Step-by-step guide to generating eslint.config.js

  1. Choose language and framework features: Select JavaScript or TypeScript support and toggle options for React, React Hooks, Node.js, or Prettier compatibility.
  2. Review generated configuration and install script: Examine the live-generated eslint.config.js code alongside the matching terminal installation command.
  3. Copy files and run dependency installation: Copy the code into your repository's eslint.config.js file and run the terminal command to install all devDependencies.

Explore related developer utilities

Build a comprehensive code quality stack with our Prettier Config Generator, configure strict type boundaries using the TSConfig Generator, set up build tooling with the Vite Config Generator, or containerize your application using our Dockerfile Generator.

Frequently Asked Questions

  • What is the difference between ESLint flat config (eslint.config.js) and legacy .eslintrc?
    ESLint flat config (eslint.config.js) is the official configuration system in ESLint 9+. Unlike legacy .eslintrc cascading files, flat configs use standard JavaScript arrays, explicit plugin imports, predictable matching objects, and unified scoping without hidden extends magic.
  • How does this tool handle TypeScript parsing and rules?
    The generator configures @typescript-eslint/parser and @typescript-eslint/eslint-plugin. It establishes languageOptions with modern ECMAScript parser settings and applies recommended TypeScript type-checking rules to validate variable types, function signatures, and interface declarations.
  • Why is eslint-config-prettier included in generated configurations?
    eslint-config-prettier disables all ESLint rules that conflict with or are redundant to Prettier code formatting. Including it ensures ESLint focuses purely on code quality and logical errors while Prettier handles code formatting without rule collisions.
  • How are React Hooks and React Refresh rules configured?
    For React projects, the generator includes eslint-plugin-react-hooks and eslint-plugin-react-refresh. This automatically enforces rules of hooks like react-hooks/rules-of-hooks and react-hooks/exhaustive-deps, catching invalid dependency arrays and conditional hook calls.
  • How do I install the required npm dependencies for my generated config?
    The tool generates a ready-to-run npm, yarn, or pnpm install command alongside your config file. Simply copy and execute the command in your terminal to install all necessary devDependencies including ESLint, plugins, parsers, and config presets.
  • Can I use this ESLint flat config with Next.js or Vite projects?
    Yes. The generated flat config is fully compatible with Vite, Next.js, React, Vue, Node.js, and standalone TypeScript projects. It aligns with modern bundler module resolution and ECMAScript module (ESM) export syntax.
  • How do ignore patterns work in ESLint flat configuration files?
    In flat configs, global ignores are declared using dedicated objects containing an ignores array (such as ignores: ['dist/**', 'node_modules/**', '.next/**']). This replaces legacy .eslintignore files with clean, centralized in-code declaration arrays.
  • Is any code or configuration data stored or transmitted during generation?
    No. All linting rules, custom plugin definitions, and package installation commands are computed locally inside your browser memory. ToolJiffy maintains a zero-cloud policy, ensuring your code preferences and team standards remain completely private.
310 free tools
Instant — runs on your device
Files never uploaded
Free — no sign-up