---
title: Introduction
description: Welcome to Sheriff!
icon: HiOutlineBarsArrowDown
---

import { IoLogoGithub } from "react-icons/io5";
import { IoLogoNpm } from "react-icons/io5";
import { Button } from "@/components/ui/button"
import { Callout } from "fumadocs-ui/components/callout";

This is the official website of the open-source library **Sheriff**.

<a href="https://github.com/AndreaPontrandolfo/sheriff" target="_blank">
  <Button className='cursor-pointer'>
    <IoLogoGithub /><span>Github</span>
  </Button>
</a>
<a href="https://www.npmjs.com/package/eslint-config-sheriff" target="_blank">
  <Button className='cursor-pointer'>
    <IoLogoNpm /><span>npm</span>
  </Button>
</a>

## What is Sheriff?

Sheriff is a comprehensive ESLint configuration. It supports [various popular technologies](/docs/techs).

<Callout title="Info">

Sheriff is a Typescript-first library, and as such, it support only Typescript codebases written with modern ECMAScript standards. Vanilla Javascript codebases are not supported as of now. See [FAQ](/docs/faq#does-sheriff-support-vanilla-javascript-codebases).

</Callout>

## Key points

- This library is pioneering in the adoption of the ESLint `FlatConfig`, [introduced in ESLint v8.23.0](https://eslint.org/blog/2022/08/eslint-v8.23.0-released/)
- Sheriff is very easy to get started with and use. It promotes a _"zero overhead approach"_. See: [philosophy](/docs/core-philosophy/criteria)
- Sheriff is a [_"plug & play"_](/docs/setup/automatic-setup) solution but you can customize it as much as you want. See: [features](/docs/features)

## Trivia

The name "Sheriff" comes from the idea that it's a tool that watches over your codebase and keep everything in order.

## Ok, let's do this

To get started, head over to the [automatic setup guide](/docs/setup/automatic-setup) and follow the instructions.
