Idea

Project / Compiled UI updates

Compile UI updates ahead of time.

When one state value changes in a React UI, the runtime can rerun components and compare their output to find which DOM changes it needs to apply.

For a UI written in Bosatsu, a typed functional language, Yichus analyzes which elements depend on each state value. For scalar updates, it generates direct bindings. In the counter below, a change to count writes to one element’s text without rerunning the component.

The counter’s compiled binding

count → count-display.textContent

Convert the integer to text, then update this element.

Changes that add or remove elements take a slower path.

You can compare it with React in your browser. The benchmark times how fast each one accepts updates, which is not the same as how fast each finishes drawing, and the numbers depend on your machine.

Code & run Read and run the compiled counter

Follow the update through the system

The interactive compiler explainer shows the counter, its generated code, and the binding used for an update. The benchmark runs generated Yichus code and React’s runtime in the same browser.

This is a rendering experiment, with different paths for scalar updates and changes to the page’s structure. A single benchmark does not establish how an entire application will perform.

All Yichus projects · Work with your agent

Where this fits