One note on the title of this post: Elm compiles to HTML, CSS, and JS. Not just JS! I think this actually an extremely important distinction! It differentiates the project from templating libraries which still ultimately have you think and write in HTML. It also distinguishes it from scripting languages (like CoffeeScript) which also only address part of the problem. With Elm, you shouldn't need the mental model imposed by HTML and CSS which I think will be a really great thing.