# Faster, easier, friendlier: how quick-lint-js will take over ESLint

2021-12-13

ESLint finds bugs. Or does it? ESLint is so slow that you don't bother until you make a PR. So what's the point?

quick-lint-js is different. Instantly find bugs in JavaScript, right in your editor. Waste less time fiddling with ESLint plugins and configs and more time tweaking margins and rounded corners.

We are proud to announce version 1.0 of quick-lint-js!

- install quick-lint-js
- 🌐 try in your browser
- code on GitHub

Notable quick-lint-js features:

- Over 110 times faster than ESLint, Flow, and TypeScript
- VS Code, Emacs, Vim, and Neovim plugins
- Documented errors with examples
- Instant setup; no config required (no `npx eslint --init` every. single. project)
- World's fastest JavaScript editor plugin 🚀🚀🚀
- Better error reporting than ESLint for syntax errors

How does quick-lint-js compare to ESLint? See for yourself:

ESLint

    function getDefaultConfig() {
      return
      {
        dbHost: "localhost",
      };
    }

Parsing error: Unexpected token }

quick-lint-js

    function getDefaultConfig() {
      return
      {
        dbHost: "localhost",
      };
    }

return statement returns nothing (undefined) [E0179]

ESLint

    app.get("/", await (req, res) => {
      await doHomePage(req, res);
    });

Parsing error: Unexpected token =>

quick-lint-js

    app.get("/", await (req, res) => {
      await doHomePage(req, res);
    });

'await' cannot be followed by an arrow function; use 'async' instead [E0178]

ESLint

    function readConfig(configFilePath) {
      let data = await readFile(configFilePath);
      return parseConfig(data);
    }

Parsing error: Unexpected token readFile

quick-lint-js

    function readConfig(configFilePath) {
      let data = await readFile(configFilePath);
      return parseConfig(data);
    }

'await' is only allowed in async functions [E0162]

What should we work on next? Suggest features for quick-lint-js.

quick-lint-js was born on March 31, 2020, after frustrations with ESLint and Flow. 20 months and 2700 patches later, quick-lint-js is finally ready for beginners and experts alike. Through our hiring program, we have paid 311 USD to contributors. 36 people made quick-lint-js possible.

- install quick-lint-js
- 🌐 try in your browser
- code on GitHub

Written by strager, lead developer of quick-lint-js.