Sheriff
The Nextgen Typescript Linting Experience
All the power of ESLint at your fingertips, without the hassle.
pnpm create @sherifforg/config
A different ESLint Config
Sheriff is a complete rethinking of the DevEx a modern ESLint config should provide.
Preconfigured ignores
Comes prepackaged with commonly ignored paths and respects your .gitignore file.
Batteries included
All-in-one solution with everything included. No need to install or configure anything separately.
No lock-in
Extended capabilities beyond a simple ESLint config, but not a framework. Extend or disable rules as needed.
Meets you where you are at
Formatting agnostic with no style restrictions. Works perfectly with Prettier or without it.
Frictionless by design
Setup with a single command that automatically infers project details for optimal configuration.
Interoperability
Install at any point in your project. The setup command configures everything automatically.
Preconfigured ignores
Comes prepackaged with commonly ignored paths and respects your .gitignore file.
Batteries included
All-in-one solution with everything included. No need to install or configure anything separately.
No lock-in
Extended capabilities beyond a simple ESLint config, but not a framework. Extend or disable rules as needed.
Meets you where you are at
Formatting agnostic with no style restrictions. Works perfectly with Prettier or without it.
Frictionless by design
Setup with a single command that automatically infers project details for optimal configuration.
Interoperability
Install at any point in your project. The setup command configures everything automatically.
Preconfigured ignores
Comes prepackaged with commonly ignored paths and respects your .gitignore file.
Batteries included
All-in-one solution with everything included. No need to install or configure anything separately.
No lock-in
Extended capabilities beyond a simple ESLint config, but not a framework. Extend or disable rules as needed.
Meets you where you are at
Formatting agnostic with no style restrictions. Works perfectly with Prettier or without it.
Frictionless by design
Setup with a single command that automatically infers project details for optimal configuration.
Interoperability
Install at any point in your project. The setup command configures everything automatically.
Preconfigured ignores
Comes prepackaged with commonly ignored paths and respects your .gitignore file.
Batteries included
All-in-one solution with everything included. No need to install or configure anything separately.
No lock-in
Extended capabilities beyond a simple ESLint config, but not a framework. Extend or disable rules as needed.
Meets you where you are at
Formatting agnostic with no style restrictions. Works perfectly with Prettier or without it.
Frictionless by design
Setup with a single command that automatically infers project details for optimal configuration.
Interoperability
Install at any point in your project. The setup command configures everything automatically.
Cutting-edge
Early adopter of the new eslint FlatConfig format. Easily migrate your project without effort.
Sensible
Hand-picked rules to prevent real-world production issues and ensure style consistency. No bloat.
Typesafe
Configuration file can be fully typesafe.
Configurable
Fully configurable with its own config object.
Modular
Opt-in support for a wide array of libraries.
Extensible
Designed for easy extension. Add your own rules, plugins, and configurations with minimal effort.
Cutting-edge
Early adopter of the new eslint FlatConfig format. Easily migrate your project without effort.
Sensible
Hand-picked rules to prevent real-world production issues and ensure style consistency. No bloat.
Typesafe
Configuration file can be fully typesafe.
Configurable
Fully configurable with its own config object.
Modular
Opt-in support for a wide array of libraries.
Extensible
Designed for easy extension. Add your own rules, plugins, and configurations with minimal effort.
Cutting-edge
Early adopter of the new eslint FlatConfig format. Easily migrate your project without effort.
Sensible
Hand-picked rules to prevent real-world production issues and ensure style consistency. No bloat.
Typesafe
Configuration file can be fully typesafe.
Configurable
Fully configurable with its own config object.
Modular
Opt-in support for a wide array of libraries.
Extensible
Designed for easy extension. Add your own rules, plugins, and configurations with minimal effort.
Cutting-edge
Early adopter of the new eslint FlatConfig format. Easily migrate your project without effort.
Sensible
Hand-picked rules to prevent real-world production issues and ensure style consistency. No bloat.
Typesafe
Configuration file can be fully typesafe.
Configurable
Fully configurable with its own config object.
Modular
Opt-in support for a wide array of libraries.
Extensible
Designed for easy extension. Add your own rules, plugins, and configurations with minimal effort.
Composable
A Config, a Scaffolder and a Doctor. Use what you like.
Best practices
Built around the best practices of the JavaScript ecosystem.
Incrementally adoptable
Can be adopted incrementally with the "files" filter.
Comprehensive
Supports up to 10 different technologies.
Composable
A Config, a Scaffolder and a Doctor. Use what you like.
Best practices
Built around the best practices of the JavaScript ecosystem.
Incrementally adoptable
Can be adopted incrementally with the "files" filter.
Comprehensive
Supports up to 10 different technologies.
Composable
A Config, a Scaffolder and a Doctor. Use what you like.
Best practices
Built around the best practices of the JavaScript ecosystem.
Incrementally adoptable
Can be adopted incrementally with the "files" filter.
Comprehensive
Supports up to 10 different technologies.
Composable
A Config, a Scaffolder and a Doctor. Use what you like.
Best practices
Built around the best practices of the JavaScript ecosystem.
Incrementally adoptable
Can be adopted incrementally with the "files" filter.
Comprehensive
Supports up to 10 different technologies.
Batteries included
Sheriff is the ultimate culmination of the ESLint ecosystem. It is designed to be an all-in-one solution. Forget about dependency management hell. Everything your project needs is already built-in.
Scaffolder
Introduce Sheriff in your project with a single command. No more manual setup. A simple wizard will help you kickstart the perfect configuration for your needs. Monorepo compatible.
Config
From here on, you can enable new rules on-top of Sheriff or disable any existing rules that don't fit your vision.
Doctor
Keep the Sheriff options in check as time goes by and the project grows. Plug it into your CI pipeline and forget about it.
Comparisons
Sheriff strive to offer the best possible combination of features and ease of use among every other option in the wild.
sheriff | eslint-config-airbnb | standard | eslint-config-standard | @antfu/eslint-config | XO | eslint-config-canonical | eslint-kit | eslint-config-hardcore | |
---|---|---|---|---|---|---|---|---|---|
FlatConfig | Supported | Not supported | Not supported | Supported | Supported | Not supported | Not supported | Not supported | Not supported |
Maintained | Supported | Not supported | Not supported | Not supported | Supported | Supported | Supported | Supported | Supported |
Customizable | Supported | Supported | Not supported | Supported | Supported | Supported | Supported | Supported | Supported |
Rich docs | Supported | Supported | Supported | Not supported | Supported | Supported | Supported | Supported | Supported |
Functional programming | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported |
Preconfigured ignores | Supported | Not supported | Not supported | Not supported | Supported | Supported | Not supported | Not supported | Not supported |
Learning curve | Easy learning curve | Medium learning curve | Medium learning curve | Medium learning curve | Hard learning curve | Medium learning curve | Hard learning curve | Hard learning curve | Medium learning curve |
Incremental adoption | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported | Not supported |
Typesafe config | Supported | Not supported | Not supported | Not supported | Supported | Not supported | Not supported | Not supported | Not supported |
Scaffolder | Supported | Not supported | Not supported | Not supported | Supported | Not supported | Not supported | Supported | Not supported |
Doctor | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
Typescript | Supported | Not supported | Not supported | Not supported | Supported | Supported | Supported | Supported | Supported |
React | Supported | Supported | Not supported | Not supported | Supported | Supported | Supported | Supported | Supported |
Vue | Not supported | Not supported | Not supported | Not supported | Supported | Supported | Not supported | Supported | Supported |
Solidjs | Not supported | Not supported | Not supported | Not supported | Supported | Not supported | Not supported | Supported | Not supported |
Svelte | Not supported | Not supported | Not supported | Not supported | Supported | Not supported | Not supported | Supported | Not supported |
GraphQL | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported | Not supported | Not supported |
Unicorn | Supported | Not supported | Not supported | Not supported | Supported | Supported | Supported | Supported | Supported |
Sonarjs | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported |
JSDoc | Supported | Not supported | Not supported | Not supported | Supported | Not supported | Supported | Not supported | Not supported |
TSDoc | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
Import | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Supported | Supported |
Lodash | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported | Not supported | Not supported |
Remeda | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
Nextjs | Supported | Not supported | Not supported | Not supported | Supported | Not supported | Supported | Supported | Not supported |
Jest | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported | Not supported | Supported |
Vitest | Supported | Not supported | Not supported | Not supported | Supported | Not supported | Supported | Not supported | Not supported |
Testing-library | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported |
Playwright | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
Storybook | Supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported | Supported |
Astro | Supported | Not supported | Not supported | Not supported | Supported | Not supported | Not supported | Not supported | Not supported |
Sheriff in numbers
Technologies
Plugins
Rules
Github stars
Monthly downloads
Contributors
Join the revolution
Sheriff grows stronger with every contributor. Join our community and help shape its future!