Elm uses functional programming, meaning all data passing through are immutable, and contains no side-effect. Data must be passed from one function to the other without the concept of sharing states in different scopes. The functions have no impurities, they are purely what they seem to be, the same input guarantees the same output.
What this really means is that the program is 100% predictable within the scope of the entire Elm application. This is incredible because with only one built-in function, Elm can render your entire HTML DOM using lazy diff comparison. If there are no changes to most of the page, there was never a need to refresh 99% of DOM elements for that 1% difference! The result is a lightweight and fast interface that can run anywhere.
What's more, all these features comes without putting together a whole list of frameworks and plugins, which eventually becomes a burden to maintain.