Skip to content
🪵 Flint is early and experimental — pull up a log, things are still being whittled.

🔥 A fast, friendly linter

Pull up a log.
Lint by the fire.

Flint tidies up JavaScript, TypeScript, and more with inviting defaults, gentle reporting, and wonderful performance.

  • 100% open source
  • Works with TS & JS
  • Loves your monorepo
The Flint logo: a flaming heart atop a squiggly underline

🏕️ Pitch your tent in 10 seconds

Try Flint on any project

Pick your favorite fire-starter:

Terminal window
npx flint

Frustrated with slow linting that doesn't catch what you care about? Or maybe your linter is fast, but doesn't include powerful lint rules? Let Flint help you out.

Get started linting with Flint →

🌲 What's in the pack

Everything you need for the trail

Four little tools, packed thoughtfully. Pull them out when the path gets twisty.

cozy defaults

Toasty by default

Sensible rules right out of the bag. No config wrangling — just unzip, light the fire, and start linting.

fast & cached

Always points home

Intelligent caching and CI coordination keep duplicate jobs from wandering off-trail. Your runs finish faster.

typed power

Type-checked shelter

Lint rules powered by the full TypeScript type checker. They catch the kind of bugs that hide under tent flaps.

clear config

Bright, readable config

Configs you can actually read by lantern-light. Powerful when you need it, quiet when you don't.

📖 The trail map

Hundreds of rules, hand-picked & happy.

Each rule comes with a friendly explanation, real-world examples, and an autofix when we can manage it. No cryptic codes. No lecture from the scout-master.

  • anyAssignments

    Reports assigning a value with type any to variables and properties.

    tslogical
  • unnecessaryComparisons

    Reports comparisons that are always true, always false, or can be simplified.

    tslogical
  • deprecated

    Disallow using code marked as @deprecated.

    tslogical
  • caseFallthroughs

    Reports switch case clauses that fall through unexpectedly.

    tslogical
  • arrayIncludes

    Reports using .indexOf() comparisons that can be replaced with .includes().

    tsstylistic
  • unnecessaryTernaries

    Reports ternary expressions that can be simplified to boolean expressions or logical operators

    tsstylistic
The Flint logo: a flaming heart atop a squiggly underline

Gather 'round, friend.

Flint is built in the open by a tiny crew who really, really like good code and warm drinks. Come hang out.

❤️‍🔥
Thank you to our sponsors

Flint can't happen without the generous support of these wonderful folks.

Financial sponsors allow us to keep development of Flint going, including maintaining and improving the project, providing support to users, and pushing web ecosystem tooling forward with advances in great typed static analysis and holistically designed linting.