Skip to content

Roadmap ​

The reactive system was rewritten for 2.0 on top of the propagation algorithm of alien-signals. Updates are synchronous, propagate in topological order and can be grouped with batch().

Reactive text children are recreated on every change ​

A text child from an accessor destroys the previous text node and constructs a new one each time the value changes, instead of updating the existing node's label in place.

This is not a big issue, since it can be fixed from user code by using the text node directly and using its label property instead.

Planned: introduce an updateText Renderer API and update the existing text node in place.

Error boundaries ​

Errors simply propagate to the code that triggered them, there is no builtin mechanisms to handle them.

Planned: an ErrorBoundary component that exposes a mechanism to catch errors and recover from them.

Suspense boundaries ​

There is currently no builtin support for async mechanisms.

Planned: Suspense that displays a fallback component while its subtree is doing async work.

Dev server ​

The CLI is written in Rust and uses Rolldown's Rust API. Since it is not a Rolldown plugin it is impossible to use it with other plugins. This decision was mostly because I wanted to fit it into a single binary so that there is no dependency on Node and npm packages to make it easier to distribute.

Planned: rewrite it in TypeScript as a Rolldown plugin.