Skip to content

Rules

Flint will provide a comprehensive set of rules for all languages common to most typical web development projects. Rules are grouped into plugins that you can opt into as you choose.

Plugins are grouped into three categories:

  • Core Plugins: Those applicable to any project using their language. They come as part of the flint npm package.
  • Focused Plugins: Those for large areas of projects or code styles that are applicable to many, but not all, likely Flint users. They come in separate npm packages under @flint.fyi/.
  • Incubator Plugins: Area-specific plugins that should exist under community governance, but don’t yet have a dedicated team outside of Flint working on them. They come in separate npm packages under @flint.fyi/.

These come as part of the flint npm package. They’re applicable to any project using the language they lint for.

  • JSON Rules for linting .json files containing arbitrary data in the JavaScript Object Notation (JSON) format.
  • Markdown Rules for linting .md files containing Markdown, the lightweight markup language.
  • PackageJSON Rules for linting Node.js package.json manifest files in repositories and workspaces.
  • TypeScript (and JavaScript) Rules for linting JavaScript and TypeScript code, including the latest and greatest powerful typed linting rules.
  • YAML Rules for linting .yaml/.yml files containing arbitrary data in the Yet Another Markup Language (YAML) format.

These are large areas of projects or code styles that are applicable to many, but not all, likely Flint users. They come in separate npm packages under @flint.fyi/.

  • Browser Rules for code that runs in browsers and other environments with DOM (Document Object Model) elements.
  • Flint Rules for writing third-party Flint plugins and custom rules. Meta!
  • JSX Rules for code that describes UI with the "JSX" markup language, commonly in .jsx and/or .tsx files.
  • Node.js Rules for code that runs in Node.js and other server runtimes that include Node.js-like APIs.
  • Performance Rules for specialized code designed specifically to be run in performance-critical "hot paths".
  • Sorting Rules that automatically sort any and all possible aspects of code alphabetically, such as imports and properties.
  • Spelling Rules that detect misspelling typos in source files using the code-optimized "CSpell" spell-checker.

Area-specific plugins that should exist under community governance, but pending a dedicated maintenance team outside of Flint’s, are being developed as part of the Flint project. They come in separate npm packages under @flint.fyi/.

  • Astro Rules for Astro, the web framework for content-driven websites.
  • Next.js Rules for Next.js, the React meta-framework for high-quality web applications.
  • Nuxt Rules for Nuxt, the progress web framework that makes full-stack development with Vue.js intuitive.
  • React Rules for React, the library for web and native user interfaces.
  • SolidJS Rules for SolidJS, the library for building effortless UIs with reactive precision.
  • Vitest Rules for Vitest, a next generation testing framework built on Vite. It's fast!
  • Vue Rules for Vue, the Progressive JavaScript framework for building web user interfaces.
Made with ❤️‍🔥 in Boston by Josh Goldberg and contributors.