If you're tired of the complexity of managing ESLint, Prettier, and multiple configuration files, Ultracite might be exactly what you need. Built on top of Biome (a Rust-based formatter and linter), Ultracite provides a fast, simple alternative that combines code formatting and linting into a single tool.
Ultracite is a development tool that brings automated code formatting and linting to JavaScript/TypeScript projects. It's built on top of Biome, which is written in Rust and combines the functionality of Prettier (formatting), ESLint (linting), and Stylelint into one extremely fast binary.
Key benefits:
Getting started with Ultracite is incredibly simple:
npx ultracite init
This command will:
You can customise the installation with flags:
# Specify package manager
npx ultracite init --pm pnpm
# Configure specific editors
npx ultracite init --editors vscode,cursor
# Set up AI editor rules
npx ultracite init --rules vscode-copilot,cursor,windsurf
# Enable additional features
npx ultracite init --features husky,lint-staged
# Remove existing tools
npx ultracite init --remove-prettier --remove-eslint
Install Ultracite:
npx ultracite init --editors vscode
Install the Biome VS Code extension:
Configure VS Code settings: The init command creates a
.vscode/settings.json
file:
{
"editor.defaultFormatter": "biomejs.biome",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"quickfix.biome": "explicit",
"source.organizeImports.biome": "explicit"
}
}
Install Ultracite with Cursor support:
npx ultracite init --editors cursor --rules cursor
Install Biome extension in Cursor:
AI Integration: Ultracite creates .cursorrules
file for better AI
assistance:
Use Biome for code formatting and linting.
Format code using Biome's rules.
Apply Biome's import sorting.
Fix linting issues automatically when possible.
Install with Windsurf configuration:
npx ultracite init --editors windsurf --rules windsurf
Install Biome extension (if available in Windsurf marketplace)
AI Rules: Creates .windsurfrules
for AI-assisted development
Install with Zed support:
npx ultracite init --editors zed --rules zed
Zed configuration is automatically added to your settings
Ultracite creates a biome.json
file with optimised settings:
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": false,
"ignore": ["dist/**", "build/**", "node_modules/**"]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 80
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"trailingCommas": "es5"
}
}
}
Ultracite can set up Git hooks to ensure code quality:
npx ultracite init --features husky,lint-staged
This creates:
.husky/pre-commit
hooklint-staged
configuration in package.json
npx ultracite init --features lefthook
Ultracite creates AI-specific rule files to help AI coding assistants understand your formatting preferences:
## Code Style Guidelines
Use Biome for all code formatting and linting.
- Use single quotes for strings
- Use trailing commas where valid
- Organise imports automatically
- Follow Biome's recommended rules
When writing code:
- Use Biome formatting standards
- Apply single quotes for strings
- Use 2-space indentation
- Organise imports with Biome
- Follow linting rules from biome.json
# Remove old tools and install Ultracite
npx ultracite init --remove-eslint --remove-prettier
This will:
npx ultracite init
Ultracite will detect existing Biome configuration and enhance it.
Once installed, you can use these commands:
# Format all files
npm run format
# Check for issues
npm run lint
# Fix issues automatically
npm run lint:fix
# Check files (no fixes)
npx biome check .
# Format specific files
npx biome format --write src/
.vscode/settings.json
has correct configuration# Remove conflicts
npx ultracite init --remove-prettier --remove-eslint
Biome is extremely fast, but if you experience issues:
.biomeignore
file excludes large directoriesfiles.ignore
in biome.json
Speed Comparison:
Developer Experience:
npx ultracite init
--features husky
--remove-eslint --remove-prettier
Ultracite simplifies the development toolchain by providing a fast, zero-config alternative to the traditional ESLint + Prettier setup. With built-in support for modern editors and AI coding assistants, it's designed for the current development landscape.
The Rust-based Biome engine makes it significantly faster than traditional JavaScript tools, while the Ultracite wrapper provides sensible defaults and easy setup for modern TypeScript projects.
Try it out in your next project – the setup takes less than a minute, and the performance improvement is immediately noticeable.