A list of companies using Elm in production
The company I work at (<a href="https:&#x2F;&#x2F;halogen.tv" rel="nofollow">https:&#x2F;&#x2F;halogen.tv</a>) has been using Elm in production for a few years now, we have around 90k LOC in Elm for the front-end, and it has mostly been a pleasure to work in.<p>The biggest upsides in my view are:<p>- The compiler is your best friend, the error messages are great, and you can enforce a lot of things with the type system.  Have a list that should never been empty? Use a NonEmptyList, need to manage a selection? Use a Zipper&#x2F;SelectList.  Forgot to handle a possibility in a case statement? The compiler will catch it for you.<p>- Refactoring, even large scale refactors, are tractable and actually fun.  Change the architecture in whatever way you want and follow the compiler errors, when you fix the last compiler error things usually work like you want!<p>- (Almost) No runtime errors.  There are still a few rough edges where you can get a runtime exception, but they are uncommon.<p>It is not to say it is all roses, there are negatives as well:<p>- Lack of a roadmap or timeline, there is zero visibility into what is being worked on and when things may happen.  This has been a deliberate choice by the core team I think because when they had a roadmap and parts of it didn&#x27;t fit into the next release people were angry.<p>- Bugs can take a long time to be fixed, even if there is a PR that fixes it, it is unlikely to be merged.<p>- Experimentation is discouraged. The 0.19 update removed the undocumented, unsupported, here-be-dragons hooks that allowed writing effect managers except for repos in the elm or elm-explorations organizations on github.  I agree with not allowing those modules to be published to the elm package site, but intentionally blocking people experimenting on their own is unnecessary in my opinion.  Of course you can always fork the compiler and remove the restrictions.<p>- Ports are a pain.  We generally use custom elements in place of ports where it makes sense, but they are really a hack around some of Elm&#x27;s pain points, if I could do it all nicely in Elm I would.