A reactive language

You build applications.
Program does the wiring up._

A reactive and declarative programming language. You write what you want to see, and Program deals with how it works. The novel use of two-way data binding and reversible calculations means there are no event handlers, and everything is truly composable.

STATE Maths.Integer count = 0

Ui.Layout.Row
  Ui.Button.Integer.Decrement count
    Ui.Content.Text "Decrement"

  Ui.Content.Integer count

  Ui.Button.Integer.Increment count
    Ui.Content.Text "Increment"

State can live anywhere.

There's no store to set up and no single place state has to live. A value can sit right where it's used, a context can flow down to everything beneath it, and the dependencies between them track themselves — so the structure of your code is the structure of your program.

Highlights

Explore

The language, worked examples, the module library and the targets it renders into.

Examples

Complete programs, small to large.

See all examples →

Modules

The standard library, in four categories.

See all modules →

Targets

One source renders into all of these.

See all targets →