Skip to main content
Each of the tools Ultracite wraps has a different coverage story. Biome and Oxlint/Oxfmt are Rust-based and lean on what their own parsers natively support. ESLint and Prettier lean heavily on their plugin ecosystems, which means wider coverage but more moving parts. Stylelint is CSS-focused by design. This page summarises what each tool supports natively today so you can choose a toolchain that fits the languages your project actually uses.

Legend

SymbolMeaning
βœ…Full, stable native support
🟑Experimental or partial (e.g. <script> blocks only)
βŒ›In progress per official docs
πŸ”ŒSupported via an official or community plugin
❌Not supported

Linting Support

LanguageBiomeOxlintESLintStylelint
JavaScriptβœ…βœ…βœ…βŒ
TypeScriptβœ…βœ…πŸ”ŒβŒ
JSXβœ…βœ…βœ…βŒ
TSXβœ…βœ…πŸ”ŒβŒ
JSONβœ…βŒπŸ”ŒβŒ
JSONCβœ…βŒπŸ”ŒβŒ
CSSβœ…βŒπŸ”Œβœ…
SCSSβŒβŒβŒπŸ”Œ
SassβŒβŒβŒπŸ”Œ
LessβŒβŒβŒπŸ”Œ
HTMLβœ…βŒπŸ”ŒπŸ”Œ
Vue🟑🟑 scriptsπŸ”ŒπŸ”Œ
Svelte🟑🟑 scriptsπŸ”ŒπŸ”Œ
Astro🟑🟑 scriptsπŸ”ŒπŸ”Œ
GraphQLβœ…βŒπŸ”ŒβŒ
MarkdownβŒβŒπŸ”ŒβŒ
MDXβŒβŒπŸ”ŒβŒ
YAMLβŒβŒπŸ”ŒβŒ

Formatting Support

LanguageBiomeOxfmtPrettier
JavaScriptβœ…βœ…βœ…
TypeScriptβœ…βœ…βœ…
JSXβœ…βœ…βœ…
TSXβœ…βœ…βœ…
JSONβœ…βœ…βœ…
JSONCβœ…βœ…βœ…
CSSβœ…βœ…βœ…
SCSSβŒ›βœ…βœ…
SassβŒβŒπŸ”Œ
LessβŒβœ…βœ…
HTMLβœ…βœ…βœ…
VueπŸŸ‘βœ…βœ…
SvelteπŸŸ‘πŸŸ‘πŸ”Œ
AstroπŸŸ‘πŸŸ‘πŸ”Œ
GraphQLβœ…βœ…βœ…
MarkdownβŒ›βœ…βœ…
MDXβŒβœ…βœ…
YAMLβŒ›βœ…βœ…

Notes

Biome

Biome is the only tool here that explicitly tracks parse, format, and lint support per language as separate columns. The official language-support matrix is the source of truth. Vue, Svelte, and Astro are flagged as experimental and subject to change. SCSS, YAML, and Markdown are listed as in-progress for formatting, with linting not yet started.

Oxlint

Oxlint is a JavaScript and TypeScript linter β€” that’s it. For framework files (.vue, .svelte, .astro) it lints only the <script> block; templates are not parsed. If you need linting for CSS, JSON, YAML, or similar formats, Oxlint is not the right tool and you’ll need to pair it with something else.

Oxfmt

Oxfmt targets Prettier-style formatting breadth and is much wider than Oxlint. Its docs list JavaScript, JSX, TypeScript, TSX, JSON, JSONC, JSON5, YAML, TOML, HTML, Angular, Vue, CSS, SCSS, Less, Markdown, MDX, GraphQL, Ember, and Handlebars as supported. Svelte and Astro currently land in the partial/experimental bucket across the Oxc stack.

ESLint

Core ESLint only parses JavaScript (and JSX with ecmaFeatures.jsx). Everything else β€” TypeScript, Vue, Svelte, Astro, JSON, YAML, Markdown, HTML, CSS β€” requires a custom parser or dedicated plugin (@typescript-eslint, eslint-plugin-vue, @eslint/json, @eslint/markdown, @eslint/css, etc.). That plugin ecosystem is by far the largest of any tool on this page, but it comes with more configuration surface area.

Prettier

Prettier ships the widest built-in language coverage of any tool here, including Vue and Angular templates natively. Svelte and Astro are the notable exceptions: both are commonly used but rely on community plugins (prettier-plugin-svelte, prettier-plugin-astro). Indented Sass also requires a plugin.

Stylelint

Stylelint natively handles CSS. Everything else CSS-adjacent β€” SCSS, Sass, Less, CSS-in-JS, <style> blocks inside HTML or framework files β€” works through PostCSS custom-syntax plugins (postcss-scss, postcss-less, postcss-html, and so on). It does not lint JavaScript, TypeScript, JSON, or other non-style formats.

Choosing a toolchain

Three quick rules of thumb:
  • If your project is primarily JavaScript, TypeScript, JSON, CSS, and GraphQL, Biome gives you the tightest, fastest single-binary experience.
  • If you need the widest language coverage or rely on language-specific ecosystem rules (e.g. deep Vue, Svelte, or Astro tooling), ESLint + Prettier + Stylelint is still the most complete option.
  • If raw lint speed on a large JS/TS codebase matters most, Oxlint + Oxfmt is the fastest of the three. Pair it with Stylelint if you also need CSS linting.
See the individual provider pages (Biome, ESLint, Oxlint) for Ultracite-specific setup details.