Elm is awesome, but also look into Cycle[1].
[1] http://cycle.js.org
That said, it does raise very interesting ideas about writing web apps so it's worth a look at least just for fun.