Skip to content

Extended vs Legacy

eslint-config-airbnb-extended ships in two flavors. Both are flat-config only (no .eslintrc*) and work great with TypeScript, what differs is their philosophy and how opinionated they are.

NOTE

This package doesn’t support .eslintrc*. If you’re still on legacy config files, migrate to eslint.config.mjs first. See migration guide for detailed information.

Overview

AspectExtendedLegacy
PurposeModern, TypeScript-first, opinionated defaults for new and existing codebasesProvide drop-in replacement of the original Airbnb ESLint configurations using the new flat config format.
StrictnessTighter defaults out of the box, pairs nicely with the optional Strict Rules add-onConservative defaults, easier drop-in when migrating from old Airbnb configs
TypeScriptFully supported, encourages TS-aware patternsFully supported, fewer extra opinions
ImportsUses eslint-plugin-import-x (faster fork of eslint-plugin-import) for modern import checksUses eslint-plugin-import to keep migration noise low
StylingUses ESLint Stylistic for formatting-style rules you can autofix and tuneUses deprecated ESLint styling rules for easy migration
Best forTeams who want a maintained, modernized successor to Airbnb with sensible opinionsTeams moving from airbnb, airbnb-base, or airbnb-typescript configs who want to keep the same behavior initially and improve gradually.

Which one should I choose?

Choose Extended if you:

  • are starting fresh or ready to modernize,
  • looking for TypeScript-aware checks along with a cleaner, more consistent import and style setup,
  • plan to enable the Strict Rules bundle later for even tighter consistency.

Choose Legacy if you:

  • are migrating from airbnb, airbnb-base, or airbnb-typescript configs and want minimal diffs first,
  • have a large codebase and prefer a gentler, low-friction transition path,
  • plan to adopt the Extended (or Strict rules) opinions gradually after migration.

Released under the MIT License.