Features
The ideas behind Program.
A handful of ideas do most of the work: reactivity at the core, two-way reversible updates, comparable functions, asynchronous work for free, sandboxed effects, and one source that runs everywhere.
The features
Reactive →
Values that recompute themselves.
Reversible →
Two-way reactivity: update an output and the state follows.
Typesafe →
Records, tagged unions and optionals, checked end to end and in every target.
Contexts →
Ambient values that flow down the call tree, plus collectors for lists, maps and trees.
Composable →
Modules with small, snap-together reactive surfaces.
Asynchronous →
Asynchronous work as ordinary reactive values, with loading and errors handled for you.
Sandboxed →
Effects run through swappable drivers, so program logic stays pure.
Polyglot →
One source, rendered into many target languages.