outwatch / outwatch

A purely functional and reactive UI framework based on Monix and VirtualDom

Website GitHub

OutWatch - Functional and reactive UIs with Rx, VirtualDom and Scala Typelevel incubator Build Status Scala.js Gitter chat

Getting started

First you will need to install Java and SBT if you haven't already. Create a new SBT project and add the ScalaJS plugin to your plugins.sbt. Then add the following line to your build.sbt.

libraryDependencies += "io.github.outwatch" %%% "outwatch" % "0.10.2"

Please test the latest release candidate and report any issues and questions you encounter:

libraryDependencies += "io.github.outwatch" %%% "outwatch" % "1.0.0-RC2"

If you are curious and want to try the state of the current master branch, add the following instead:

resolvers += "jitpack" at "https://jitpack.io"
libraryDependencies += "com.github.outwatch" % "outwatch" % "master-SNAPSHOT"

And you're done, you can now start building your own OutWatch app! Please check out the documentation on how to proceed.

Three main goals of OutWatch

  1. Updating DOM efficiently without sacrificing abstraction => Virtual DOM
  2. Handling subscriptions automatically
  3. Removing or restricting the need for Higher Order Observables

Bugs and Feedback

For bugs, questions and discussions please use the Github Issues.


We adopted the Typelevel Code of Conduct. People are expected to follow it when discussing OutWatch on the Github page, Gitter channel, or other venues.


Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at


Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.