A highly opinionated, zero-configuration linter and formatter
Ultracite is a highly opinionated preset for Biome, designed to help you and your AI models write consistent and type-safe code without the hassle of configuration.
$
Used by these organizations and hundreds of open source projects.
Why choose Ultracite?
Ultracite is specifically designed to be easy to setup and use. Here's how it compares to other toolchains.
Zero-config by design
Hundreds of rules for your framework to optimize your JavaScript / TypeScript code, while still allowing you to customize when needed.
👆 Yes this is literally all you need.
Designed for humans and AI
Ensure consistent code style and quality across all team members and AI models, eliminating debates over formatting and reducing code review friction.
AI Editor Rules
Synchronized rule files for VS Code, Cursor, Windsurf and Zed keeps your AI responses consistent with your coding style.
Configurable spec
Extend the Ultracite spec to your liking.
Output panel
Biome uses the VS Code output panel to show problems.
.cursor
.rules
ultracite.mdc
index.tsx
layout.tsx
utils.ts
globals.css
biome.jsonc
import React from 'react';interface User { id: number; name: string; email: string;}const UserCard: React.FC<{ user: User }> = ({ user }) => { return ( <div className="p-4 border rounded-lg shadow-sm"> <h3 className="text-lg font-semibold">{user.name}</h3> <p className="text-gray-600">{user.email}</p> </div> );};export default UserCard;Problems
Biome (Ultracite)
index.tsx
/index.tsx
React is imported but not used
It is not necessary to wrap the return statement in a div.
Sure! I'll generate a new UserCard component for you.
Using Ultracite
I found several issues with the code. Here's a list of suggestions:
React is imported but not used. This is a common pattern in React codebases, but it's not necessary. You can destructure the import to use the React object.
It is not necessary to wrap the return statement in a div. You can return the JSX directly.
Extract types into a type definition rather than providing them inline. This will make the code more readable and maintainable.
MCP Support
Run external code through the Ultracite MCP server to lint without needing to install it locally, or connect it to an Agent for consistent code quality in background jobs.
Format on save
Format your code on save with Ultracite.
Works with all your favourite agents
Ultracite can generate rules files for all these popular IDEs and agents, so you can get the most of out of your AI integrations.
What the community is saying
Here's what some of the most in the most forward-thinking developers in the React ecosystem have to say about Ultracite.