In the last few days, I've taken a look at Reason.
I enjoy the style and patterns of functional programming languages.
ClojureScript is a language that I enjoyed. But its toolchain and its support for modern React features are lacking. As a niche language, Clojurescript's ecosystem is smaller.
Reagent, the most popular interface for React, still doesn't support React hooks.
The tooling centers mostly around Java and the JVM, because everyone assumes that you use Clojure as the back-end language.
Clojure and ClojureScript are written for experienced programmers. There is no de-facto Clojure web framework. Clojurists use tons of different libraries that suit their needs. It's very confusing for newcomers to the language.
I'm sure that Java programmers will have a better first impression.
I'm not sure if Elm would be a good fit for me. But it seems like the Elm architecture makes it unnecessarily complicated to get things done.
It's functional, it's familiar, and it has first-class React-bindings.
Reason compiles to Ocaml under the hood. I don't know a lot about Ocaml. But from what I've read about Reason, its concepts feel very similar to Elixir (immutable data structures, pattern-matching, linked lists) - but with types.
I can see ReasonReact as the perfect companion for an Elixir web application. (I'm not sure if Phoenix and Reason play well together out of the box, though.)