# Add a custom ESLint config ## Introduction to ESLint ESLint is an open source JavaScript linting utility. Code linting is a type of static analysis that is frequently used to find problematic patterns. There are code linters for most programming languages, and compilers sometimes incorporate linting into the compilation process. JavaScript, being a dynamic and loosely-typed language, is especially prone to developer error. Without the benefit of a compilation process, JavaScript code is typically executed in order to find syntax or other errors. Linting tools like ESLint allow developers to discover problems with their JavaScript code without executing it. ## Why use this recipe Gatsby ships with a built-in ESLint setup. For most users, the built-in ESlint setup is all you need. If you know, however, that you’d like to customize your ESlint config e.g. your company has their own custom ESlint setup, this recipe makes that possible. This recipe replicates (mostly) the ESLint config Gatsby ships with and then you can add additional presets, plugins, and rules. This recipe: --- Installs necessary packages. --- Installs `gatsby-plugin-eslint`. --- Writes out a basic .eslintrc.js file that you can extend with your own chosen eslint plugins and presets. --- Once the recipe is installed, you can edit the eslint config by opening `.eslintrc.js` in your code editor.