Elm é uma linguagem de programação específica de domínio para criar declarativamente interfaces gráficas com o usuário baseadas em navegador da web . Elm é puramente funcional e é desenvolvido com ênfase em usabilidade , desempenho e robustez . Ele anuncia "nenhuma exceção de tempo de execução na prática", possibilitada pela verificação de tipo estático do compilador Elm.
Elm foi inicialmente projetado por Evan Czaplicki como sua tese em 2012. O primeiro lançamento do Elm veio com muitos exemplos e um editor online que facilitou a experimentação em um navegador da web . Evan Czaplicki ingressou na Prezi em 2013 para trabalhar na Elm, e em 2016 mudou para a NoRedInk como Engenheiro Open Source, também iniciando a Elm Software Foundation.
A implementação inicial do compilador Elm é direcionada para HTML , CSS e JavaScript . O conjunto de ferramentas principais continuou a se expandir, agora incluindo um REPL, gerenciador de pacotes, depurador de viagem no tempo, e instaladores para Mac e Windows. Elm também tem um ecossistema de bibliotecas criadas pela comunidade e um editor on-line avançado que permite trabalhos salvos e inclusão de bibliotecas comunitárias.