Skip to content
Please consider donating to the charity Enduring Hearts
Biome, Toolchain of the web Biome, Toolchain of the web

One toolchain for your web project

Format, lint, and more in a fraction of a second.

Format code like Prettier, save time

Biome is a fast formatter for JavaScript, TypeScript, JSX, and JSON that scores 97% compatibility with Prettier, saving CI and developer time.

Biome can even format malformed code as you write it in your favorite editor.

function HelloWorld({greeting = "hello", greeted = '"World"', silent = false, onMouseOver,}) {
if(!greeting){return null};
// TODO: Don't use random in render
let num = Math.floor (Math.random() * 1E+7).toString().replace(/.d+/ig, "")
return <div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}>
<strong>{ greeting.slice( 0, 1 ).toUpperCase() + greeting.slice(1).toLowerCase() }</strong>
{greeting.endsWith(",") ? " " : <span style={{color: 'grey'}}>", "</span> }
{ greeted }
{ (silent)
? "."
: "!"}
function HelloWorld({
greeting = "hello",
greeted = '"World"',
silent = false,
}) {
if (!greeting) {
return null;
// TODO: Don't use random in render
let num = Math.floor(Math.random() * 1E+7)
.replace(/.d+/gi, "");
return (
title={`You are visitor number ${num}`}
{greeting.slice(0, 1).toUpperCase() + greeting.slice(1).toLowerCase()}
{greeting.endsWith(",") ? (
" "
) : (
<span style={{ color: "grey" }}>", "</span>
{silent ? "." : "!"}

Faster than Prettier when formatting 171,127 lines of code in 2,104 files with an Intel Core i7 1270P.

Try the Biome formatter on the playground or directly on your project:

Terminal window
npm i -D --save-exact @biomejs/biome
npx @biomejs/biome format --write ./src

Fix problems, learn best practice

Biome is a performant linter for JavaScript, TypeScript, and JSX that features 253 rules from ESLint, TypeScript ESLint, and other sources.

Biome outputs detailed and contextualized diagnostics that help you to improve your code and become a better programmer!

complexity/useFlatMap.js:2:1 lint/complexity/useFlatMap  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   The call chain .map().flat() can be replaced with a single .flatMap() call.

    1 │ const array = ["split", "the text", "into words"];
  > 2 │ => sentence.split(' ')).flat();
    3 │ 

   Safe fix: Replace the chain with .flatMap().

    1 1  const array = ["split", "the text", "into words"];
    2  -·=>·sentence.split('·')).flat();
      2+ array.flatMap(sentence·=>·sentence.split('·'));
    3 3  

Try the Biome linter on the playground or directly on your project:

Terminal window
npm i -D --save-exact @biomejs/biome
npx @biomejs/biome lint --write ./src

Everything all at once

Not only can you format and lint your code separately, you can do it all at once with a single command!

Every tool integrates seamlessly with others to create a cohesive toolchain for web projects.

Run all tools with the check command:

Terminal window
npm i -D --save-exact @biomejs/biome
npx @biomejs/biome check --write ./src


Built with Rust and an innovative architecture inspired by rust-analyzer.


Zero configuration needed to get started. Extensive options available for when you need them.


Designed to handle codebases of any size. Focus on growing product instead of your tools.


With tight internal integration we are able to reuse previous work and any improvement to one tool improves them all.

Actionable & Informative

Avoid obscure error messages, when we tell you something is wrong, we tell you exactly where the problem is and how to fix it.

Batteries Included

Out of the box support for all the language features you use today. First class support for TypeScript and JSX.

Try Biome

Install Biome using your preferred package manager AND integrate it in your editor.

Install with package manager


Integrate Biome in your editor



Powered by our open-source contributors

User ematipico User sebmck User Conaclos User MichaReiser User leops
User denbezrukov User xunilrj User yassere User Sec-ant
User IWANABETHATGUY User diokey User yeonjuan User EduardoLopes User ooflorent User faultyserver
User nissy-dev User unvalley User jer3m01 User bitpshr User arendjr
User nhedger User macovedj User togami2864
User vasucp1207 User ah-yu User dyc3 User vohoanglong0107 User victor-teles
User Boshen User Kelbie User chansuke User mattcompiles