Roadmap 2024 | Biome
We’re thrilled to share what the Core Contributors and Maintainers want to give attention to in 2024.
We need to remind you that Biome is a community-driven challenge, so we are able to solely promise that a few of the concepts outlined under can be shipped.
Nonetheless, if you happen to’re enthusiastic about some points of the challenge, and also you need to see a few of them developed quicker than others, you possibly can assist us in some ways:
The challenge is younger and might’t compete in opposition to giants corresponding to Prettier, ESLint, Webpack, Vite, ESBuild, and so on. Nonetheless, the current occasions (sponsors, bounty problem, Biome being a fork of Rome) confirmed that the customers have curiosity within the challenge, and we confirmed these customers that we’ve the instruments to fulfil a necessity.
Transferring small tasks from ESLint/Prettier is straightforward, however shifting massive code bases is difficult and time-consuming; this can be a massive friction level in Biome.
Customers have completely different wants, although, so it is going to solely be attainable to fulfill a few of them. We need to make sure that all options and contributions to our challenge embrace our philosophy and supply the most effective expertise by default.
- Assist customers to maneuver to Biome
- Broaden Biome’s language help so Biome instruments can span extra of the net ecosystem
- Deepen Biome’s current capabilities to supply extra functionalities
- Plugins
- Transformations
- Group and content material
- Provide guides on our web site to customers who need to migrate from Prettier (CLI instructions and configuration)
- Provide guides on our web site to customers who need to migrate from ESlint (CLI instructions and configuration)
- Provide a bit on our web site that exhibits a mapping of the ESLint guidelines to our guidelines
- Provide instructions to ease the transition
- A command known as
biome migrate prettier
that can learn.prettierrc
and.prettierignore
will replace thebiome.json
file (or create it) with the configuration from the Prettier recordsdata. - A command known as
biome migrate eslint
will learn the JSON configuration of Eslint and the ignore file. There can be expectations and limitations.
- A command known as
CSS is our subsequent language of focus, and we’re making good progress. HTML and Markdown will observe. Comply with our up-to-date page to maintain up with the progress of our work.
The CSS language will allow a lot work and experimentation: CSS formatting and linting, and we’ll port a few of the lint guidelines from stylelint
. A brand new space of experimentation is cross-linting.
The concept of cross-linting may be defined with an instance: compute the CSS kinds/lessons outlined in a challenge and warn a consumer when mentioned kinds aren’t used inside JSX/HTML recordsdata.
Plus, we unlock one other space of experimentation, which is embedded formatting.
HTML and Markdown can be our subsequent languages of focus. HTML will allow us to parse different variants of HTML which might be standard within the frontend ecosystem: Vue, Svelte and Astro, and this could require some exploration of how you can symbolize tremendous languages of HTML.
- Undertaking evaluation and dependency decision
- Kind system
- CLI
We are going to present lint guidelines to learn the manifest and detect errors corresponding to invalid licenses.
With challenge decision, we can present extra lint guidelines, a few of which can be capable to detect unused modules.
With dependency decision, we are able to – for instance – detect dependencies that aren’t used inside a challenge.
With this infrastructure, our LSP goes to be extra highly effective and supply extra options, for instance:
- rename variables throughout a challenge;
- auto-complete for imports;
- in-line varieties
Constructing a full-fledged kind system corresponding to TypeScript is a large effort; that’s why we determined to take a special course and begin by constructing a subset of the kind system that requires stricter typing. This method would permit us to construct some essential lint guidelines that customers have been asking for.
This may include a draw back: we should depend on a stricter code and minimal kind inference from the compiler.
As soon as we’ve one thing we are able to depend on, we are able to slowly widen the capabilities of our kind system.
Extra options for the command line device, corresponding to:
- Add the
clarify
command for offline documentation; - Enable the output to be exported in numerous codecs (JSON, and so on.)
- Auto-completion for different shells corresponding to
zsh
; - Implement the
--modified
argument, which permits to format – for instance – solely the modified traces of a doc; - Expose metrics for Biome’s operations and with the ability to monitor down attainable efficiency bottlenecks;
We are going to discover plugins and give you a design that matches Biome.
Biome is completely different from different instruments as a result of Biome is a toolchain that has a number of instruments in it, so we’ve to assume out of the field and suggest a design which may differ from the instruments persons are used to.
We don’t know but what a Biome’s plugin will appear to be, though a plugin ought to be capable to faucet all of the instruments that Biome presents.
Some concepts that we’ll take into account:
Transformations and code technology can be our first steps in the direction of our compiler.
We are going to present the power to remodel TypeScript and JSX recordsdata into JavaScript recordsdata.
Biome has a rising ecosystem, with an official VSCode extension, an official IntelliJ extension, and a Discord bot. We need to develop the options these instruments present and welcome anybody who desires to assist us.
Our group is slowly rising, and we need to reward everybody who sticks round and contributes to Biome. At Biome, we worth each contribution, so that you don’t should be proficient in Rust to assist us. Even taking part in discussions and serving to us to form our options or serving to different persons are thought of contributions. If you happen to’d wish to proceed contributing to our ecosystem, we additionally encourage you to nominate yourself as a maintainer of the project.
Not too long ago Biome began its personal YouTube Channel. We are going to use this channel to share studying content material with the group.
With this weblog publish, we additionally need to formally announce our new brand, homepage and rebranding of the web site.
With this new brand, we need to give a special which means to the challenge. Biome isn’t a fork of Rome anymore, however a self-sufficient challenge able to bloom.
The triangle of the emblem represents the mountains – soil -, and the curly form on the underside left represents a wave of the ocean – water. Two parts which might be essential in making a self-sufficient ecosystem, so it could thrive and develop.