BiomeJS 2024 Roadmap

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • biome

    A toolchain for web projects, aimed to provide functionalities to maintain them. Biome offers formatter and linter, usable via CLI and LSP.

  • For TypeScript specifically there is some justification in that the TypeScript compiler is rather slow, so any speed benefits of Biome would go away if it relied on TypeScript for type information.

    But as a whole, not-invented-here syndrome has plagued Biome/Rome for the entire lifespan of the project. Like take a look at their error reporting code[1]. They made their own markup abstraction with their own Display trait and Write trait and a proc macro on top of it. It's cool code and probably does produce very nice error messages, but they could have easily used off the shelf crates like miette or ariadne and moved on to more important tasks.

    Or even their JS parser. It's a really nice JS parser! Maybe the best in terms of error reporting and AST resolution. But they could have easily used swc and maybe shipped the actual end-user products a little faster.

    [1]: https://github.com/biomejs/biome/blob/main/crates/biome_cons...

  • miette

    Fancy extension for std::error::Error with pretty, detailed diagnostic printing.

  • But miette already produces quite good error messages! On par with Rust's IMO: https://github.com/zkat/miette

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • tools

    Discontinued Unified developer tools for JavaScript, TypeScript, and the web

  • It definitely existed by the time rome_console/biome_console was created! The crate was created 2 years ago[1] and miette was released more than 2 years ago[2]. By the time rome_console was created miette was on v4, so presumably somewhat mature.

    [1]: https://github.com/rome/tools/commits/main/crates/rome_conso...

    [2]: https://crates.io/crates/miette/versions

  • TypeScript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • Calling the TypeScript Compiler could slow down our linter making the switch from TypeScript ESlint to Biome less attractive. We don't aim to build a complete type system, just the minimal parts to be able to implement most the linter rules that requires type info. The idea is to build on the upcoming TypeScript Isolated Declarations [0]. If this is too much of work, then we will review our options.

    [0] https://github.com/microsoft/TypeScript/issues/47947

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts