ESLint: Recommended Standards
The article discusses the most popular JavaScript standards that are compatible with ESLint.
Standard JS
Standard JS is one of the most popular tools for enforcing coding style in JavaScript, which comes with ESLint support. I've been using it's rules for quite some time, but unfortunately it's ESLint config is with the latest ESLint 9 version. There are some issues within project itself that need to be fixed before it can fully support the new version.
[July 2025] After a long time of waiting for the updates, it looks like this project is dead ☠️
How to Use Standard JS with ESLint 8?
If you want to stick with Standard JS, and the tool being outdated isn't a concern, you can proceed by following the official ESLint 8 guidelines to set up this coding standard.
Start by initializing the tool with the command: npm init @eslint/config -- --config standard
, and then set up the .eslintrc
as below, and you can keep using it while waiting for updates.
{
"root": true,
"extends": ["standard"],
"rules": {
"semi": ["error", "always"],
}
}
How to Use Standard JS with ESLint 9?
If you want to use Standard JS with the latest ESLint 9, you use the FlatCompat
utility provided by ESLint to translate the .eslintrc
format into a flat config. You can follow the official guide.
Remove all entries related to eslint
and standardjs
from the project's package.json
file to start fresh, then install the latest version of eslint
, eslint-config-standard
and a few other plugins.
yarn add eslint eslint-config-standard eslint-plugin-import eslint-plugin-n eslint-plugin-promise --dev
In the file eslint.config.js
, initialize the object FlatCompat
and use ...compat.extends
, providing the name of the package containing the rules. Flat Config does not support the .eslintignore
file, so if you have any exceptions that ESLint should ignore, move them directly into config.
import { FlatCompat } from '@eslint/eslintrc';
const compat = new FlatCompat();
export default [
...compat.extends('eslint-config-standard'),
{
rules: {
semi: ['error', 'always'],
},
},
{
ignores: ['dist', 'vendor', 'node_modules', '.output'],
},
];
Although it is not a perfect solution, as the additional required plugins are designed for ESLint 8 and warnings appear during installation, everything works well. So, if you're looking for a quick way to resolve the compatibility issue between eslint-config-standard
and eslint
, and those messages don't deter you, it's a good, but temporary, choice.
Neostandard
Neostandard is a community-driven solution based on the Standard JS rules. It is designed to work with ESLint 9 and uses @eslint-stylistic
, regularly updated, reducing problems with outdated environments, and is very easy to configure.
How to Use Neostandard with ESLint 9?
Remove all entries related to eslint
and standard
from the project's package.json
file to start fresh, then install the latest versions of eslint
and neostandard
.
yarn add eslint neostandard --dev
Next, in the eslint.config.js
file, use the neostandard
rules and adjust the configuration to the project's needs. From now on, ESLint will be able to maintain the previously defined standards without the issues mentioned earlier.
import neostandard from 'neostandard';
export default [
...neostandard(),
{
rules: {
'@stylistic/semi': ['error', 'always'],
},
},
{
ignores: ['dist', 'vendor', 'node_modules', '.output'],
},
];
What Standard do We Use at Coditive?
I found that the rules provided by Standard JS offer a good compromise - they’re simple and not annoying. This motivated me to spend more time integrating them into our workflow.
Initially, we worked with an older version of ESLint, but eventually made the switch to update by converting the classical configuration to a flat one. After waiting a few months for updates and to reduce compatibility issues, we opted for Neostandard.
Thank you so much for joining me in today ❤️ Your support means a lot to me, and it keeps me motivated to create more content. If you enjoyed this article, please consider subscribing to the channel and giving it a thumbs-up - it really helps spread the word. And if you need developers who truly care about quality and delivering great results, visit my company’s site: coditive.com or contact me with the form below. Thanks again and see you next time!

Looking For a Developer Who
Truly Cares About Your Business?
My team and I provide expert consultations, top-notch coding, and comprehensive audits to elevate your success.
Feedback
How satisfied you are after reading this article?