Building with Chroma

Targ Apps
6 min. read

Chroma is our Rust-to-WASM framework for interfaces that need precise updates instead of full re-renders.

Chroma shines when you need Rust-backed logic close to the UI runtime and long-lived tools rather than one-off landing pages.

Fine-grained by default

In Chroma, reactive values update the exact DOM nodes they touch. That keeps interactions snappy on dense dashboards and creative tools.

import { hookState, render, e } from "./pkg/chroma.js";

function Counter() {
  const [count, setCount] = hookState(0);

  return e(
    "button",
    { onClick: () => setCount(count() + 1) },
    "Count: ",
    count,
  );
}

When we choose it

We reach for Chroma when:

  1. Performance matters more than JSX ergonomics
  2. We want Rust-backed logic close to the UI runtime
  3. We are shipping desktop shells or long-lived tools, not one-off landing pages

If you want the full technical reference, start with the Chroma docs.