# Iris WASM reactive UI framework for Go. ## Quickstart Get from zero to a running app in under 5 minutes. ### Prerequisites - Go 1.23 or later - Copy the WASM support file: `cp "$(go env GOROOT)/misc/wasm/wasm_exec.js" ./public/` ### Create your app ```go //go:build js && wasm package main import ( "fmt" "git.flowmade.one/flowmade-one/iris/reactive" "git.flowmade.one/flowmade-one/iris/ui" ) func main() { count := reactive.NewSignal(0) view := ui.NewView() view.Child(ui.TextFromFunction(func() string { return fmt.Sprintf("Count: %d", count.Get()) })) view.Child(ui.Button(func() { count.Set(count.Get() + 1) }, ui.TextFromString("Click me"))) ui.NewApp(view) // Keep the program running select {} } ``` ### Create the HTML host Create `public/index.html`: ```html Iris App ``` ### Build ```bash GOOS=js GOARCH=wasm go build -o public/app.wasm ./main.go ``` ### Run Create a simple server or use the built-in host: ```go package main import ( "net/http" "git.flowmade.one/flowmade-one/iris/host" ) func main() { server := host.New("public", "index.html") http.ListenAndServe(":8080", server) } ``` Run it: ```bash go run server.go ``` ### Expected output Open http://localhost:8080 in your browser. You should see: - A "Count: 0" text - A "Click me" button - Clicking the button increments the count reactively