A highly opinionated, zero-configuration linter and formatter
A

A highly opinionated, zero-configuration linter and formatter

A highly opinionated, zero-configuration linter and formatter

3,039 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

Ultracite: The Zero-Config Linter and Formatter We've Been Waiting For

Let's be honest: setting up a new JavaScript or TypeScript project can be a drag. You spend the first hour installing ESLint, Prettier, maybe a style guide plugin, then tweaking config files until they stop fighting each other. What if you could skip all that and just get to writing code?

That's the promise of Ultracite. It's a highly opinionated, zero-configuration linter and formatter that bundles together the essential tools and rules, so you can enforce code quality without the configuration headache.

What It Does

Ultracite is a single tool that combines linting and formatting. Under the hood, it uses ESLint for linting and dprint for formatting, but you don't need to know that. You just run it. It comes with a pre-baked, sensible set of rules for JavaScript, TypeScript, JSON, and Markdown. The "highly opinionated" part means the decisions are made for you—no debates about semicolons or trailing commas here.

Why It's Cool

The "zero-configuration" claim is the real standout. You install it, run ultracite --fix, and your code is linted and formatted. No .eslintrc.js, no .prettierrc, no merging conflicting rules between five different plugins.

It's also fast. By using dprint for formatting instead of Prettier, it leverages Rust's speed, which is noticeable on larger codebases. The bundled rule set is comprehensive but not overwhelming—it focuses on catching real problems and enforcing consistent style, not nitpicking preferences.

For developers who just want to write code and keep their repositories clean, or for teams that want to standardize without the maintenance of a custom config, Ultracite removes a significant chunk of friction.

How to Try It

Getting started is as straightforward as it gets. Install it globally via npm:

npm install -g ultracite

Then, navigate to your project and run it:

# Check your files
ultracite . # Or, to automatically fix issues
ultracite --fix .

That's it. It will analyze your .js, .ts, .json, and .md files against its built-in rules. You can also integrate it directly into your package.json scripts for use in CI/CD pipelines.

Check out the repository for more details and the full command-line options: github.com/haydenbleasel/ultracite

Final Thoughts

Ultracite won't be for everyone. If you need fine-grained control over every single linting rule, you'll probably want to stick w

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Dec 14, 2025