Biome published @biomejs/biome@2.5.15 on 30 September 2026: type-inference and HTML formatter performance, plus nursery rules for React defaults, Svelte runes, logical CSS, and more. ShopperCove upgrade checklist only; no affiliate.
4 min read
No affiliate links. This is a frontend toolchain note from public Biome docs and the GitHub release. ShopperCove has not migrated a production monorepo to 2.5.15 for this article.
Biome’s npm latest is @biomejs/biome@2.5.15, published 30 Sep 2026 (registry time 2026-09-30T15:23:18.673Z; GitHub release 2026-09-30T15:23:21Z). Cont11 already covered pnpm 12.9.1; this slot is the freshest Biome patch among Biome / Bun / Prettier signals as of 5 Oct 2026 sources—not a Bun 1.4.2 or Prettier 3.9 rehash.
Baseline for the 2.5 line remains the Biome v2.5 blog (5 Jun 2026): 500+ lint rules, plugin includes + plugin code fixes, delimiterSpacing, CLI --watch, linter.rules.preset, go-to-definition, and related LSP/CLI work. 2.5.15 is the patch you pin after that line when you want the late-September inference and formatter wins.
From the GitHub release for @biomejs/biome@2.5.15:
| Rule | Intent (from release notes) | |
|---|---|---|
noReactObjectTypeAsDefaultProp | Disallow array/object/function default props in React components | |
noSvelteExportLet | Prefer $props() over legacy export let | |
useSvelteKitRuneImports | Prefer $app/state over deprecated $app/stores | |
useLogicalProperties | Prefer CSS logical properties; direction option ltr (default) or rtl | |
noMeaninglessVoidOperator | Flag unnecessary void (allows discarded calls, thenables, void 0, never) | |
useStrictBooleanExpressions | Report ambiguous truthiness such as if (value) on `number | undefined` |
noAstroConflictingSetDirectives | Flag conflicting set:html / set:text / children | |
noTailwindRawColors | Discourage raw palette classes like bg-pink-500 in favor of design tokens | |
noSelfImport | Forbid a module importing itself | |
usePromiseRejectErrors | Require Error objects as Promise rejection reasons | |
noMisplacedListElements | Require <li> under <ul> / <ol> / <menu> when parent is an HTML element |
Nursery rules are opt-in until you promote them. Do not treat nursery as “recommended” by default.
biome check --write; Astro expressions also format via biome format.0600 under a biome-daemon cache directory).ShopperCove is not attaching CVE IDs to this note.
npx @biomejs/biome --version (or your package-manager pin) and whether CI uses npm/pnpm/yarn/bun.npm view @biomejs/biome version → expect 2.5.15 as of 5 Oct 2026 sources.-E / --save-exact (npm i -D -E @biomejs/biome@2.5.15).linter.rules.recommended, run biome migrate --write toward linter.rules.preset (v2.5 blog).biome check (and format) before enabling new nursery rules.ShopperCove did not change production Biome versions for this article. Prefer biomejs.dev and the GitHub release over third-party roundups.
Biome 2.5.15 (30 Sep 2026) is worth the pin if you care about type-inference cost, HTML format speed, and late nursery coverage for React / Svelte / Astro / CSS logical properties. Start from the v2.5 feature baseline, then land on 2.5.15. No affiliate.
Lab evidence
Sources read 5 Oct 2026 (Asia/Calcutta): npm registry @biomejs/biome latest=2.5.15 (time 2026-09-30T15:23:18.673Z); GitHub release @biomejs/biome@2.5.15 published 2026-09-30T15:23:21Z — type inference performance up to ~2–240x on Zod/Valibot/Arktype/Effect/Kysely/Drizzle benchmarks; HTML formatter up to 4x; indexing/analysis of big files up to 2x; nursery rules noReactObjectTypeAsDefaultProp, noSvelteExportLet, useLogicalProperties (direction ltr|rtl), useSvelteKitRuneImports, noMeaninglessVoidOperator, useStrictBooleanExpressions, noAstroConflictingSetDirectives, noTailwindRawColors, noSelfImport, usePromiseRejectErrors, noMisplacedListElements; Astro multiline expression indent + format via biome format; config errors retained before commands; Unix daemon socket mode 0600 under biome-daemon cache dir; Tailwind detection in Svelte/Vue/Astro class expressions. Baseline context: Biome v2.5 blog (5 Jun 2026) — 500+ rules, plugin path includes + code fixes, delimiterSpacing, --watch, linter.rules.preset. Getting started pin with -E. Checklist only; no ShopperCove monorepo migrated; no affiliate.
Biome 2.5.15 check vs ESLint 9.39.4 + Prettier 3.8.4 on react-hook-form (317 files): 0.41 s vs 18.7 s sequential stack (ESLint 13.58 s, Prettier check 5.22 s). migrate eslint: 54/476 direct, ~50% covered. Biome 200 errors/427 warnings vs ESLint 0/562; 9 format diffs; 287 noExplicitAny from recommended.
Summary5 Oct 20266 min read
oxfmt 0.72.0 (5 Oct 2026) swaps its Prettier-backed Markdown path for the native oxc_formatter_markdown (breaking). ShopperCove formatted 221 Markdown drafts with oxfmt 0.71.0, 0.72.0 and Prettier 3.9.9: byte-identical output, ~2 s vs ~16 ms. Plus opt-in import sorting inside code fences, the documented divergences, ignore-file and LSP fixes. No affiliate links.
Summary5 Oct 20265 min read
oxlint published v1.87.0 on 5 October 2026: suggestion support for three React/unicorn rules and jsx-a11y/label/mouse/lang hardening plus other fixes. npm latest 1.87.0 confirmed; ShopperCove docs checklist only; no affiliate.
Summary5 Oct 20264 min read