Sufficiently complex requirements require sufficiently sophisticated patterns and practices to tame the overall complexity! Only then do we have any hope of delivering a useful and high-quality product that meets those requirements.
Scala.js combined with React present a coherent combination with emphasizing both functional programming and immutability. In this talk, we will examine how we used this combination to deliver a complex set of requirements in a user-friendly application. We will explore several patterns we utilized: custom hooks to ensure reusable code and consistent user-experience, isomorphic implementation of algorithms to run the same code on servers and clients, and use of memoization to ensure a responsive UI.