Web Dev Tools

Linting & Formatting

Catching bugs and keeping style consistent in the Rust-tooling era.

Linters

  • ESLint 9 (flat config) — still the king for JS/TS linting. Largest plugin ecosystem.
  • Biome — Rust-based linter + formatter in one binary; covers a meaningful subset of ESLint rules at huge speedups.
  • oxlint — even faster Rust linter; OXC-based; useful as a fast pre-commit gate.
  • Knip — find unused files / exports / dependencies.
  • dprint — Rust-based formatter (multi-language); pluggable.

Formatters

  • Prettier — still the default for opinionated formatting.
  • Biome — does formatting too; faster than Prettier and resolves more cleanly.

Type-aware linting

  • typescript-eslint — type-aware ESLint rules; necessary for the deepest checks.
  • TS strict mode — turn on strict, noUncheckedIndexedAccess, exactOptionalPropertyTypes. Half of "linting" is just these flags.

CSS / styles

  • Stylelint — CSS linting; less needed when using Tailwind.

Pre-commit / Git hooks

  • Husky — Git hooks made easy.
  • lint-staged — run linters only on changed files.
  • simple-git-hooks — minimal alternative.

Pick this if…

  • Default project: ESLint + Prettier (boring, works, plugins for everything).
  • Want speed and one tool: Biome.
  • Need ESLint plugins (Next.js, react-hooks, etc.) but want a fast preflight: ESLint + oxlint.
  • Massive monorepo, every second counts: Biome or oxlint.

On this page