Today, the need for rapid development of desktop applications and mobile applications exist in order to provide a good UX. Toolkits for developing native GUI applications with JavaScript, such as ReactNative or Electron, fills such a need.
On the other hand, it is exceedingly difficult and cumbersome to manage complex state with dynamically typed language. In particular, it leads to bad developer experiences, forcing them to write applications with “tight” architecture (such as layered architecture in JavaScript) compared to writing in Swift or Kotlin.
From such a point of view, I wrote some applications, displayed below, using Scala.js and Electron or ReactNative for rapid development of the UI layer and robust development of the core layer.