Skip to main content

ESLint Config Generator

Generate an ESLint config file — modern flat config (eslint.config.js) or legacy .eslintrc.json — from a framework preset (Vanilla, Node, React, Next.js, Vue, TypeScript), an optional style guide (Airbnb, Standard, Google, Prettier), language options, environments, and common rule toggles.

Input

Flat config is the default since ESLint v9. Legacy is for older projects still on v8.

Selects sensible parser, plugins, and base rules for your stack.

Shareable config extended after the base. Prettier should be added last.

Language Options

JavaScript syntax version the parser accepts.

How files should be parsed.

Environments

Common Rules

Output Options

Output

Generated Config
 
Was this helpful?

Guides

The ESLint Config Generator builds a ready-to-use ESLint configuration file from a few dropdowns and toggles — no need to memorize plugin names, extends ordering, or the differences between the modern flat config and the legacy format. Pick your framework, an optional style guide, and the rules you care about, and copy the generated file straight into your project.

What it does

ESLint is the standard linter for JavaScript and TypeScript, but wiring up a config by hand means juggling parsers, plugins, environments, and shareable configs in exactly the right order. This tool assembles all of that for you. It supports:

  • Two output formats — flat config (eslint.config.js, the default since ESLint v9) and legacy (.eslintrc.json, for projects still on v8).
  • Framework presets — Vanilla JavaScript, Node.js, React, Next.js, Vue 3, and generic TypeScript, each with the right plugins and base extends.
  • Style guides — Airbnb, Standard, Google, and Prettier (added last so it can turn off conflicting formatting rules).
  • Language optionsecmaVersion and sourceType (ESM, CommonJS, or script).
  • Environments — browser, Node, Jest, and Mocha globals.
  • Common rulessemi, quotes, indent, no-unused-vars, no-console, eqeqeq, prefer-const, and no-var, each individually set to error, warn, or off.

It can also add a descriptive header comment, inline comments explaining each block, and the exact npm install -D … command listing every package the config depends on.

How to use it

  1. Choose your config format (flat is recommended for new projects).
  2. Select your framework and, optionally, a style guide.
  3. Toggle Use TypeScript if your project uses @typescript-eslint.
  4. Adjust language options, environments, and the common rule severities.
  5. Copy the generated config or download it, then run the install command it shows.

The output updates instantly as you change any option.

Flat config vs. legacy config — which should I pick?

Use flat config (eslint.config.js) for any project on ESLint v9 or newer; it is the current default and where all future development is going. Use legacy (.eslintrc.json) only if you are pinned to ESLint v8 or a toolchain that has not migrated yet.

Do I still need to install the packages?

Yes. The tool generates the config text and the matching install command, but it does not install anything for you. Run the npm install -D … line it produces (or the yarn/pnpm equivalent) so ESLint can find the referenced plugins and shareable configs.

Why is Prettier listed separately?

eslint-config-prettier only disables ESLint's formatting rules so they do not fight your formatter — it adds no rules of its own. Because of that it must be applied last, which is exactly where the generator places it.

Can I fine-tune the rules afterward?

Absolutely. The generated file is an ordinary starting point — edit rule severities, add more rules, or extend it with additional configs. Treat the output as a solid baseline, not a locked-in result.

Privacy

This generator runs entirely in your browser. Your selections are never uploaded, logged, or stored — the configuration is assembled locally from the options you choose, and nothing leaves your device.

eslintlinterconfigjavascripttypescriptflat configdeveloper tools

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.