Upgrade to v7
Upgrade from Ultracite v6 to v7 to adopt multi-linter support, updated presets, and the latest generated config structure.
Ultracite v7 introduces support for multiple linting providers: Biome, ESLint + Prettier + Stylelint, and Oxlint + Oxfmt.
What Changed
Multi-Provider Support
Ultracite now supports three linting toolchains:
- Biome — The modern, all-in-one toolchain (default)
- ESLint + Prettier + Stylelint — The most mature ecosystem
- Oxlint + Oxfmt — The fastest option
Updated Preset Paths
Preset paths now include the provider name to distinguish between linters:
| v6 Path | v7 Path |
|---|---|
ultracite/core |
ultracite/biome/core |
ultracite/react |
ultracite/biome/react |
ultracite/next |
ultracite/biome/next |
ultracite/solid |
ultracite/biome/solid |
ultracite/vue |
ultracite/biome/vue |
ultracite/svelte |
ultracite/biome/svelte |
ultracite/qwik |
ultracite/biome/qwik |
ultracite/angular |
ultracite/biome/angular |
ultracite/remix |
ultracite/biome/remix |
ultracite/astro |
ultracite/biome/astro |
New CLI Flag
The --linter flag allows you to specify which provider to use:
npx ultracite init --linter biome
npx ultracite init --linter eslint
npx ultracite init --linter oxlint
Migration
For Biome Users (Default)
Update your biome.jsonc to use the new preset paths:
{
// Before (v6)
"extends": ["ultracite/core", "ultracite/react", "ultracite/next"]
// After (v7)
"extends": ["ultracite/biome/core", "ultracite/biome/react", "ultracite/biome/next"]
}
Switching to ESLint
If you’d like to switch to ESLint + Prettier + Stylelint:
npx ultracite init --linter eslint
This will create eslint.config.mjs, prettier.config.mjs, and stylelint.config.mjs files:
import core from "ultracite/eslint/core";
import react from "ultracite/eslint/react";
import next from "ultracite/eslint/next";
export default [...core, ...react, ...next];
Switching to Oxlint
If you’d like to switch to the fastest option:
npx ultracite init --linter oxlint
This will create oxlint.config.ts and oxfmt.config.ts files:
import { defineConfig } from "oxlint";
import core from "ultracite/oxlint/core";
import github from "ultracite/oxlint/github";
import sonarjs from "ultracite/oxlint/sonarjs";
import next from "ultracite/oxlint/next";
import react from "ultracite/oxlint/react";
export default defineConfig({
extends: [core, github, sonarjs, react, next],
ignorePatterns: core.ignorePatterns,
});
import { defineConfig } from "oxfmt";
import ultracite from "ultracite/oxfmt";
export default defineConfig({
...ultracite,
});
Quick Upgrade
For the fastest upgrade path, run:
npx ultracite init
When prompted, select your preferred linting provider. Ultracite will update your configuration files automatically.