Biome 2 Beta Released
Written by Ian Elliot   
Monday, 23 June 2025

The beta of Biome 2 has been released with improvements including support for custom lint rules using GritQL; support for domains in link rules; and multi-file analysis.

Biome is a complete JavaScript toolchain that compiles and bundles JavaScript projects, lints and type-checks, runs tests, and can also format code. It is an official fork of the Facebook Rome project, and is maintained by the same core team of developers.

biome

Rome was Facebook's "all-in-one” solution for JavaScript and TypeScript development. The project (named after the saying that 'all roads lead to Rome') was described as a complete JavaScript toolchain that compiles and bundles JavaScript projects, lints and type-checks, runs tests, and can also format code.

Rome's development was started by Sebastian McKenzie who is also the creator of Babel and Yarn, and development was then taken over by the React Native team at Facebook with the aim of eventually replacing tools such as ESLint and Prettier. However, it was never fully released, and was eventually discontinued as a Facebook project, at which point the development team at that point took over its development independently.

Biome's aim is to provide a comprehensive set of tools for web development, and the beta of version 2 comes with an impressive set of significant updates, including support for custom lint rules using GritQL; support for domains in link rules; and multi-file analysis.

The support for domains enables Biome to group lint rules by technology, framework, or domain, meaning a developer's default set of recommended lint rules will only include those that are relevant to their specific project, and the multi-file analysis means Lint rules can now apply analysis based on information from other files. Other changes include an enhanced version of Biome Assist so it can provide actions without diagnostics, such as sorting object keys.

This is the first version to have support for Linter Plugins and while they are still limited in scope, they do allow for matching code snippets and reporting diagnostics on them.

The team says they have plenty of ideas for making them more powerful, and will eagerly hear from their users on what they would like to see prioritised.

The new support for Domains adds a new way to organise lint rules by technology, framework, or well, domain. At the moment, the team has identified four domains: rules related to Next.js, to React, to Solid.js, and rules related to testing, regardless of framework or library.

You can enable and disable rules that belong to a domain together, as in the following code snippet:

{
  "linter": {
    "domains": {
       "test": "all", // all rules that belong to this domain are enabled
       "react": "recommended", // only the recommended rules from this domain are enabled
      "solid": "none" // rules related to Solid are disabled
     }
  }
}

 

The team says Domains go even further, as Biome will automatically inspect your package.json and determine which domains should be enabled by default. For instance, if you have react defined as one of your dependencies, the default setting for the react domain automatically becomes recommended. This should mean that Biome's total set of recommended rules should be most relevant to your specific project needs. Domains can also add global variables to the javascript.globals setting. This should make Biome even easier to set up.

Multi-file analysis support has been added via a new file scanner that scans all the files in your project and indexes them, similar to what an LSP service might do in your IDE. The developers say this does mean that Biome has become slower for many projects, but they think the ability to do multi-file analysis is worth it. 

The HTML formatter has also been updated, so that it is ready for users to try out and start reporting bugs. The team says this is a huge step towards Biome fully supporting HTML-ish templating languages used in frameworks like Vue and Svelte.

The HTML formatter only touches actual .html files for now, so no formatting of html in .vue or .svelte files yet. It also won't format embedded languages like JavaScript or CSS yet. It is currently able to parse the majority of Prettier's HTML tests, and format 46/124 of them correctly. 

There are several other improvements. The beta is available to try now. 

biome

More Information

Biome On GitHub

Biome Website

Related Articles

Facebook Builds Rome

ESLint Adds ES2020 Support

Node-RED 2.0 Adds Flow Debugger And Linter

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Alan Turing's Papers Raise A Fortune
23/06/2025

Because so much of his work was top secret, Alan Turing was very much an unsung hero during his lifetime. Recognition of his many achievements dawned gradually and now his reputation is worldwide [ ... ]



jaz - Faster Java For The Cloud
19/06/2025

Microsoft has just released jaz, a JVM launcher optimized for Azure that promises to speed up your cloud-based applications.


More News

pico book

 

Comments




or email your comment to: comments@i-programmer.info