I really like Elm and have become an intermediate user of it (as well as Haskell). I felt like I really understood what Elm signals are about and made some optimisations to Helm [0] based on that.<p>I pushed to use it for a contract for an open source application [1]. Ultimately that wasn&#x27;t a success due to various factors but it&#x27;s interesting to note that the client dropped Elm after I left and hired people to re-write everything in JS.<p>In retrospect Elm really wasn&#x27;t the right choice for that project because it wasn&#x27;t mature enough (and maybe I hadn&#x27;t been using it for long enough either). The lack of any kind continuation monad for managing effects at that point (later added to the language as Tasks) and the cumbersome interop with JS (still an issue) were real sticking points. It&#x27;s just frustrating when you have a problem that can be solved trivially with a state-mutating for loop and you have no easy mechanism to do it. The boilerplate required to use Chrome&#x27;s messaging within the app was really painful.<p>I tried to use Elm again for a personal project, a kind of gallery website with a JS search function [2]. After starting an initial prototype in Elm I switched to using React (which I had never used before) and found I was much more productive (even though the code is messier). Having a much bigger repository of re-usable modules and being able to take short cuts is really valuable at this stage of development (and the server-side compilation ability is really cool).<p>These experiences have made me wonder about the real-world place for Elm and how long it would take for it to rival something like React. I definitely think there is a lot of value in learning Elm to help you think about state in your application in a more higher level way but I would really hesitate in advocating to use it for real-world project at this stage (it does depend on the project of course).<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;switchface&#x2F;helm" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;switchface&#x2F;helm</a><p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;kasbah&#x2F;mooltipass.hid-app" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kasbah&#x2F;mooltipass.hid-app</a><p>[2] <a href="http:&#x2F;&#x2F;kitnic.it&#x2F;" rel="nofollow">http:&#x2F;&#x2F;kitnic.it&#x2F;</a> | <a href="https:&#x2F;&#x2F;github.com&#x2F;monostable&#x2F;kitnic" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;monostable&#x2F;kitnic</a> (work in progress)