This document provides an introduction to reactive programming in the browser using Scala.js and PureScript. It discusses the similarities and differences between Scala.js and PureScript, including support for functional programming concepts like higher-kinded types, monadic comprehensions, and ADTs with pattern matching. It then introduces reactive programming as programming with asynchronous data streams and how this is useful for developing user interfaces with pure functional programming. Finally, it demonstrates an OutWatch library that aims to update the DOM efficiently, handle subscriptions automatically, and reduce the need for higher-order observables.