OSS Tanbou

Airbnb JavaScript Style Guide

standardize JavaScript code style with a detailed guide and reusable ESLint shared configurations

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
148,304
Primary language
JavaScript
License
MIT
Repository last updated
Apr 16, 2026
On this page

Overview

Airbnb's JavaScript Style Guide documents coding conventions with rationale, examples, and links to ESLint rules. The same conventions are distributed as eslint-config-airbnb and eslint-config-airbnb-base so teams can enforce much of the guide automatically.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Centralize JavaScript conventions with rationale and examples

The guide covers variables, objects and arrays, destructuring, functions, modules, comparisons, naming, whitespace, testing, and many other conventions with bad/good examples and explanations.

Sources: [1]

Turn the guide into automated checks with shared ESLint configs

eslint-config-airbnb includes ES6+ and React rules, while eslint-config-airbnb-base is available for projects that do not use React.

Sources: [2]

Add React Hooks and accessibility linting

The React config depends on React, React Hooks, jsx-a11y, and import plugins, and the airbnb/hooks entry point enables Hooks-specific rules.

Sources: [2][3]

Best fit

Fits teams that want a known JavaScript baseline quickly

It provides a recognizable starting point for code review and linting that teams can selectively override instead of designing every convention from scratch.

Sources: [1]

Before adoption

eslint-config-airbnb 19.0.4 supports ESLint 7 and 8 in peer dependencies

The current package manifest lists ESLint ^7.32.0 or ^8.2.0 and does not include ESLint 9. Projects standardized on ESLint 9 and flat config need a compatibility approach or a different config.

Sources: [3]

The documented setup uses legacy .eslintrc configuration

The package README instructs users to add extends: airbnb to .eslintrc. That procedure does not directly map to projects already migrated to ESLint flat config.

Sources: [2]

Treat the guide as a team convention, not a JavaScript standard

Many choices reflect Airbnb's readability and maintainability preferences. Existing TypeScript, formatter, framework, or project rules may justify explicit overrides.

Sources: [1][2]

Official sources

  1. [1]Airbnb JavaScript Style Guide(2026-10-03)
  2. [2]eslint-config-airbnb README(2026-10-03)
  3. [3]eslint-config-airbnb package manifest(2026-10-03)
  4. [4]eslint-config-airbnb-base package manifest(2026-10-03)
  5. [5]Airbnb JavaScript MIT license(2026-10-03)
Supplemental curator note

This guide is useful as a well-known baseline for team JavaScript review rules. However, the current ESLint config does not include ESLint 9 in its peer range and documents legacy .eslintrc usage, so modern projects should verify toolchain compatibility before adopting it unchanged.

Try it in 3 steps

  1. 1

    Install Airbnb's ESLint config and peer dependencies

    Use the package README workflow. Do not use this unchanged on ESLint 9 projects because ESLint 9 is outside the current peer range.

    npx install-peerdeps --dev eslint-config-airbnb@19.0.4
  2. 2

    Extend the legacy ESLint configuration

    Use eslint-config-airbnb-base when React is not needed. Merge the extends setting instead of overwriting an existing configuration.

    printf '{ "extends": ["airbnb", "airbnb/hooks"] } ' > .eslintrc.json
  3. 3

    Run lint and review the delta

    Review violations against the existing codebase and decide which project-specific overrides the team needs.

    npx eslint . --ext .js,.jsx,.mjs
Check the official README

Growth

Growth trends · Last 30 days

148,304 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
0
Open PRs
69

Development activity is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • javascript
  • eslint
  • naming-conventions
  • arrow-functions
  • style-guide
  • style-linter
  • es6
  • es2015
  • linting
  • styleguide
  • es2016
  • es2017
Stars
148,304
Forks
26,556
Watchers
3,656
Open issues
99
Contributors
401
Owner type
Organization
Primary language
JavaScript
License
MIT
Repository last updated
Apr 16, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?