Skip to content
76

Awesome Elm

A curated list of useful Elm tutorials, libraries and software. Inspired by awesome list. Feel free to contribute. :rocket:

3.7k stars220 forks238 entriesLast push Jul 21, 2026 (2 months ago)License none

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

Learning Guides

Official tutorial

General information and in-depth guide with examples.

Elm in Action

In-depth book for Elm beginners, from Manning Publications.

Architecture Tutorial

How to create modular Elm code that scales nicely with your app.

Exercism Elm Track

Collection of Elm exercises.

Learn you an Elm

Elm tutorial with exhaustive examples and descriptions.

Beginning Elm

A gentle introduction to the Elm programming language.

Elm patterns

A collection of common patterns in Elm.

Elm Koans

Practice exercises for learning Elm.

Learn Elm

Discover the beautiful programming language that makes front-end web apps a joy to build and maintain!

Learn Elm in Y Minutes

Syntax and features overview. The Elm page on learnxinyminutes.com

In 2 lists

Elm Maybe - Dealing with null/Nothing

Working with the Maybe type, with nicely commented code examples.

Programming Elm

Thorough book from The Pragmatic Programmers that covers basics and advanced concepts.

Elm cheat sheet

Syntax and features overview.

In 3 lists

Ninety-nine Problems, Solved in Elm

Adaptations for Elm from Ninety-Nine Haskell Problems.

Elm Tutorials on Codementor

Two tutorials on building web apps with Elm.

Elm programming language

a brief overview of Elm as a programming language.

Elm: A Beginners' Guide to Elm and Data

Beginners' course to Elm and Data

Practical Elm for a Busy Developer

A non-beginner book about the practical aspects of developing Elm applications.

Haskell to Elm

Collection of examples on places where Elm is different to Haskell, targeted at Elm beginners coming from Haskell backgrounds.

In 2 lists

A nice app on Elm street

An introduction to Elm

The Elmish Book

Building web applications in F# following The Elm Architecture from first principles.

Codings hints

A list of README files by Evan.

Ellies catalog

A Collection of small example in Ellie.

Elm Cookbook

A digital book about Elm.

Awesome Elm PLTD

Useful resources for programming language theory & development in Elm.

Learning Guides >Outdated Tutorials and books (Elm 0.18 or earlier)

Elm: Building Reactive Web Apps

Learn how to build reactive web apps using Elm.

Writing native

Learn how to create native JavaScript modules for Elm.

Elm: Functional frontend development

Series of articles about fundamentals and advanced topics.

Elm Tutorial

A tutorial on developing single page web applications with Elm.

Elm Seeds

Short screencasts to teach you the Elm programming language from Erik Person.

Elm For Beginners - Video Course

Build your first Elm Web App.

Single-Page Web Apps in Elm

Five parts tutorial on Elm.

Elm FAQ

Elm FAQ from Elm Community.

Elm Tutorial by Auth0

A tutorial on building an app in Elm from authentication to calling an API.

Learning Guides >Learning Videos

Welcome to Elm

Video playlist about learning all the Elm fundamentals.

Elm The Complete Guide

Video tutorial including Elm UI, Elm Review, responsive design, tests and more.

Egghead.io: Elm videos

Egghead's Elm video training, many of which are free.

Elm Basics

Walk through all the syntax and basic ideas in Elm as a general programming language.

Greg Ziegan: Elm live coding videos

Live coding videos on youtube.

Articles >Why Elm?

Side-effects of Elm in production

An experience report from Bellroy

How Elm Made Our Work Better

How a team built a business-critical web app for a customer using Elm.

In 2 lists

FP with games in Elm

Switching from imperative to functional programming with games in Elm.

In 2 lists

Blazing Fast HTML

Virtual DOM in Elm.

Elm from a Business Perspective

This article discusses topics about Elm from a business perspective

Move fast and don’t break things. Running a startup on Elm

Some thoughts on Elm development by a Swedish startup.

Elm: A frontend story that a backend dev can love

A story how Elm fits a backend developer's brain like no other

Articles >Miscellaneous articles

Learning FP the hard way

Experiences on the Elm language.

In 2 lists

Blog of Brian Hicks

A blog with various topics about Elm.

Introduction to The Elm Architecture and How to Build our First Application

An article describing the Elm architecture and how to build a simple application

Functional Programming for Web Frontend by Jan Luxemburk

A Bachelor’s thesis about functional programming for frontend development with the focus on Elm.

Articles >Outdated articles (Not relevant for current Elm architecture)

Elm for Web Developers

A collection of notes for web developers looking into moving to Elm.

In 2 lists

Elm & Components

A blog post describing a possible approach to reducing TEA boilerplate. Useful for component libraries and anyone interested in seeing the amazing things you can do with function types.

Composing Features and Behaviours in the Elm Architecture

An article describing how to organize code that follows the Elm architecture into independent features, how to communicate between features, and how to group some of these features together to assemble larger features.

Getting Started with Elm

Series of Elm education tutorials.

In 2 lists

Elm & Guarantees

a realistic look at where Elm is and isn’t superior to other options.

Conference Videos >Playlists

Elm Conf 2019

Sep 2019

Elm Europe 2019

Jun 2019

Elm in the Spring 2019

Jun 2019

Oslo Elm Day 2019

Feb 2019

Elm Conf 2018

All talks from elm-conf 2018

Elm Europe 2018

A playlist of all talks from Elm Europe 2018

Elm Conf 2017

All talks from elm-conf 2017

Elm Europe 2017

A playlist of all talks from Elm Europe 2017

Oslo Elm Day 2017

A playlist of all talks from Oslo Elm Day 2017

Elm Conf 2016

All talks from elm-conf 2016

Conference Videos >Miscellaneous videos

Dillon Kearns: Types Without Borders | 2018

elm-conf 2018 talk about end-to-end type-safety using external schemas like GraphQL.

Jamison Dance: Rethinking All Practices - Building Applications in Elm | 2016

A talk given at React.js Conf 2016 about what Elm has to teach the JavaScript world and why JS devs should consider trying it.

Richard Feldman: Introduction to Elm | 2016

A talk that gives a broad, high-level introduction to Elm.

Amitai Burstein: Frontend with Guarantees | 2016

A talk from You Gotta Love Frontend 2016

Jessica Kerr: Adventures in Elm | 2016

A talk about the combination of functional programming with Elm at GOTO Chicago 2016.

Aaron VonderHaar: Codevember | 2016

+ ElmLive - elm live video examples.

Richard Feldman: Making impossible states impossible | 2016

A talk about modelling data structures in Elm in a way that makes invalid states unrepresentable

Richard Feldman: Effects as Data | 2015

A talk about how Elm manages side effects.

Richard Feldman: Make the Back-End Team Jealous: Elm in Production | 2015

A talk about Elm and initial steps to use it in production.

Evan Czaplicki: Let's be mainstream! User focused design in Elm | 2015

A talk from the father of Elm about the philosophy behind the language.

News

Official Elm News

Official Elm blog

Elm Weekly

A weekly newsletter about Elm

Elm Bits

A free weekly newsletter about Elm featuring hand-picked news, articles, books, events, tools, and libraries.

Elm News

All Elm news in one place

Elm Greenwood

Elm packages releases

Elm Reddit

Elm news in Reddit

Podcasts

Elm Radio

Tune in to the tools and techniques in the Elm ecosystem.

Elm Town

A podcast about the people in the Elm community (Outdated).

In 2 lists

Podcasts >Individual Podcast episodes

Functional Geekery 33

Richard Feldman and Tessa Kelly.

The Changelog 218

Elm with Evan Czaplicki and Richard Feldman

The Changelog 191

Elm and Functional Programming with Richard Feldman.

Software Engineering Daily

Elm with Richard Feldman and Srinivas Rao.

The Web Platform Podcast 15

Functional Programming with Elm, ClojureScript, Om, and React.

The Web Platform Podcast 76

The Elm Programming Language.

The Web Platform Podcast 108

Elm Revisited.

Full Stack Radio 44

What the heck is Elm? In this episode, Joel Clermont talks about Elm and functional programming.

InfoQ Podcast 2017-04-27

Richard Feldman discusses how Elm compares to React.js

Testing

Elm test

Unit and fuzz tests

Elm Program test

Test complete Elm programs

Elm Spec

Describe the behavior of Elm programs.

Code generators

Elm Bridge

Generate Elm types from Haskell

Elm CodeGen

Generate Elm code

Elm TS Interop

Build up Encoders/Decoders between Elm and TypeScript.

Elm TypeScript Interop

Generate TypeScript definitions from Elm (Elm TS Interop is an improved version of this).

elm-gql

Generate GraphQl client code from GraphQL queries

elm-graphql

Generate GraphQl client code from GraphQL schemas

In 2 lists

haskell-to-elm

Generate Elm types, encoders, and decoders from Haskell types

HTML to Elm

Convert HTML to Elm Html. Useful when porting an app to Elm.

JSON Schema to Elm

Generates Elm types, JSON decoders, JSON encoders and fuzz tests from JSON schema specifications

OpenApi Generator

Generate OpenApi types for Elm.

In 8 listsDetails

PostCSS Elm Tailwind

Put some Tailwind in your Elm

Protoc Gen Elm

Generate Protobuf En/Decoders from .proto files

Quicktype

Generate JSON decoders and encoders from JSON

In 2 lists

Travelm Agency

Generate typesafe Elm code from translation files

Package managers

elm-package

Command line tool to share Elm libraries.

Libraries

Elm packages

The official registry

Elm Catalog

Find packages in a catalog organized into categories.

Elm Search

Search Elm documentation for operators, function signatures, etc.

Boilerplates

create-elm-app

Create Elm apps with no build configuration.

elm-boil

Command Line Utility for creating an Elm boilerplate project easy to run, build and get deployed

elm-live

A flexible dev server for Elm. Live reload included.

elm-webpack-4-starter

Elm webpack 4 starter template.

example-elm-hot-webpack

Example showing hot module reloading for Elm 0.19 and Webpack

Elm Batteries

A project template and generator for Elm, Parcel, Cypress and Netlify

IHP + Elm

The IHP Haskell Framework provides a built-in Elm boilerplate, useful when working with elm in the frontend and haskell in the backend

Boilerplates >Outdated Boilerplates

elm-webpack-starter

A simple Webpack setup for writing Elm apps.

elm-app-boilerplate

A fully-featured base project for Elm apps: Webpack, HMR, ES6, JS and Elm tests, Semantic UI, sample code and more.

elmkit

A lightweight Brunch based setup for web app. Includes Brunch, Hot Module Replacement, Elm, Scss, Elm tests.

elm-boilerplate

A simple Makefile able to create Elm app.

elm-init

Interactive setup for new Elm projects.

elm-new

Generate initial project scaffolding based on a template.

elm-webpack-starter-kid

A very very basic elm + webpack 4 template.

generator-elm-mdl

Yeoman generator for a simple elm application utilizing Material Design.

Frameworks

elm-spa

Framework for making single page apps in Elm.

Elm Land

A framework for building Elm applications.

Spades

Start an Elm SPA ready to the real world.

Static analysis

Elm Analyse

Linter for the Elm programming language.

Elm Review

Code reviewer for the Elm programming language.

Static site generators

Elm Pages

Static site generator that prerenders HTML and hydrates into an Elm client-side app (here is a brief comparison with elmstatic).

Elmstatic

Elm-based static site generator.

elm-starter

An experimental Elm-based bootstrapper that can also be plugged into already existing Elm applications.

Showcase generators

Elm Book

Rich documentation builder based on Storybook and HexDocs.

Elm UI Explorer

Showcase your views and states.

Run Elm

Ellie

The Elm Live Editor

Elm Editor

Advanced Elm Live Editor

run-elm

Run Elm code from the command line

elm-instant

atom package to try your elm code from the editor. Provides a visual REPL and a preview pane.

Glitch

Build fast, full-stack web apps in your browser.

Elm Live

A flexible dev server for Elm. Live reload included!

Elm Watch

elm make in watch mode. Fast and reliable.

Compile and bundle

Codings hints

A list of README files by Evan.

elm-webpack-loader

Webpack loader Elm.

Parcel

Bundle Elm using Parcel.

vite-plugin-elm

Vite plugin for Elm.

In 2 lists

Compile and bundle >Unmaintained

grunt-elm

Grunt plugin that compiles Elm files to JavaScript.

Other tools

Elm Catalog

Find packages in a catalog organized into categories.

Dependabot

Automatic update PRs for your elm.json.

In 3 lists

Elm Doc Preview

Elm offline documentation previewer.

Elm Format

Automatic Elm code formatter adhering to Elm Style Guide.

Elm JSON

Install, upgrade and uninstall Elm dependencies

Elm Oracle

Query for information about values in elm source files. Used by most editor plugins.

type-o-rama

JS type systems interportability.

In 3 lists

Html to Elm

Convert HTML to Elm.

elm-posix

Write CLI programs using Elm

Litvis

Literate Visualization with Elm

Editor plugins >Atom

atom-linter-elm-make

Elm code linter for the Atom editor.

atom-elm-snippets

Elm snippets for Atom.

atom-language-elm

Syntax highlighting and autocompletion for the Atom editor.

elmjutsu

Autocompletion, go to definition, find usages, rename symbol, etc. for the Atom editor.

atom-elm-navigator

A side panel that helps to navigate to any function, type definition or port in your project.

Editor plugins >Emacs

emacs-elm-mode

Syntax highlighting, Elm REPL, Elm make and Elm format integration for the Emacs editor.

Editor plugins >IntelliJ

elm-plugin

Elm plugin for IntelliJ IDEA.

Editor plugins >Sublime Text

LSP-elm

Elm Language Server for Sublime (Recommended).

Elm Language Server

Language server implementation for Elm

Elm Syntax Highlighting

Syntax Highlighting for Elm in Sublime Text.

Elm Format on Save

Sublime Text plugin to run elm-format on save.

Editor plugins >Vim/Neovim

theJian/elm.vim

Elm syntax highlighting. Use with ale or Neoformat for Neovim since ElmCast/elm-vim does not support Elm 0.19.

ElmCast/elm-vim

Elm 0.18 mode for Vim/Neovim.

vim-elm-help

Offline Elm documentation access in your editor.

emmet-vim

Markup expansion with elm support.

Editor plugins >Visual Studio Code

ElmLS

Elm Language Server integration

Elmmet: Emmet for Elm (Visual Studio Code)

Emmetio abbreviation expander into composition of Elm function with elm-format'er inside.

HTML to Elm for Visual Studio Code

VSCode plugin to convert HTML to Elm

Editor plugins >Other editors

elm-light-table

Syntax highlighting, REPL, autocompletion, package management and much more for Light Table.

Examples

Builtwithelm

Web site built with elm with list of projects and apps built with Elm.

Elm SPA Example

Full stack Elm app w/ CRUD operations, Auth, routing, pagination and more. Code / Article / Video

Elm Example App

A small SPA example in Elm to learn the basics

TodoMVC

Proper implementation of the TodoMVC app.

TodoMVC with JSON API

Bare-bones, modular, heavily-documented todo app with JSON API persistence.

TodoMVC/Firebase

Fork of TodoMVC demonstrating start-app, The Elm Architecture and Firebase as backend.

TodoMVC in Electron

Documented and tested implementation of the Elm TodoMVC app in Electron.

Gipher

A Tinder-like application for gifs built with elm and firebase!

Collection of examples

A collection of examples with advanced techniques for real-world Elm apps.

<elm-ement>

Minimal example of a custom element.

Elm Playground

Tiny Elm projects implemented for the sake of learning by example.

Elm Architecture in Android

An example Android application implemented with the Elm Architecture using the Kotlin programming language and Anko library.

Elm + Phoenix + Webpack

A minimal Elm + Phoenix setup, using webpack instead of Brunch.

Spotify Mapper

Elm app integrated with Spotify Api to search and explore new artists.

Pokelmon

Elm project consuming PokéAPI.

JWT auth with Django + Elm

JSON Web Token (JWT) authentication using Django (backend) and Elm (frontend).

Bitcoin BR Chrome Extension

Chrome extension built in Elm that shows the bitcoin value in all Brazilian exchanges.

Elmstagram

Basic UI Clone of Instagram / Articles - Part 1 Part 2 Part 3

Kanban Board in Elm

A kanban board (trello-alike) built with Elm and HTML5 Drag & Drop API

Elm Playground

Pure SPA (with routing) exploring various aspects of Elm.

Elm Hacker News PWA

A progressive web app built with Elm version 0.18, using the official Hacker-News API

Elm Narrative Engine

A framework for building interactive fiction style stories in Elm. Detailed example elmnarrativeengine.com shows how to build a "chose your own adventure" game; perfect for beginners. Elm v.0.19

Ari's Garden

A recipe site built as an SPA that also makes use of the Elm parser.

Bolster

An end-to-end encrypted journal app.

Conway's Game of Life

Elm implementation of Conway's Game of Life. Elm v.0.19

Regex Nodes

A node-based visual editor for fiddling with regular expressions, built with Elm.

Examples >Games

elm-games

An excellent list of games made in Elm

TheSpace App

A reddit place like DApp with blockchain and canvas(through port) integration in Elm.

Community and Support

Companies using Elm

A list of companies using Elm in production.

In 2 lists

Discourse

Elm Discourse instance (official forum).

Elm Reddit

Elm news in Reddit

IRC

Ask questions on elm freenode.

Slack

Elm slack community.

Conferences

Elm Conf

Elm Europe

Elm in the spring

Oslo Elm day

Elm Japan

Elm Camp

Inspired by Elm

Bolero

F# in WebAssembly using Elmish

Bucklescript-TEA

The Elm Architecture based on OCaml / Reason and Bucklescript

Elchemy

Write Elixir code using statically-typed Elm-like syntax

In 2 lists

Elmish

Elm-like abstractions for F# apps

Fabulous

F# Functional App Development, using declarative dynamic UI

In 2 lists

Flame

A library that provides The Elm Architecture in PureScript.

In 2 lists

Hyperapp

A library that provide The Elm Architecture in JavaScript.

In 2 lists

Iced

A cross-platform GUI library for Rust, inspired by Elm

Indigo

Indigo is an Elm-inspired game engine for Scala.js.

Lustre

A library that provides The Elm Architecture in Gleam.

In 2 lists

Miso

A library that provides The Elm Architecture in Haskell.

Mobius

Elm-like abstractions for android apps, created by Spotify.

React-tea-cup

A thin library that provides The Elm Architecture in react, used by IBM.

Redux

A predictable state container for JavaScript apps.

Roc

A language that targets WebAssembly and machine code inspired by Elm.

Sauron

A library that provides The Elm Architecture in Rust targeting the web.

In 3 lists

SwiftUI

苹果官方的UI框架,用于构建iOS和macOS应用

In 2 lists

Tyrian

Tyrian is an Elm-inspired frontend framework for Scala.js.

MAUI

.NET Multi-platform App UI

Oolong

An Elm inspired Model-View-Update (MVU) implementation for Kotlin multiplatform.

Beyond the DOM

iOS

A POC for using Elm 0.18 for native iOS Applications

elmish-wasm

A POC for compiling elm to Web Assembly

elm-serverless

Run Elm 0.18 on Cloud Functions using the Serverless Frameworks

elm-posix

Write CLI programs using Elm

See category
94

Awesome Rust

rust-unofficial/awesome-rust

A curated list of Rust code and resources.

Fresh★ 60k1833 entriesPushed today
94

Awesome Mac

jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

Fresh★ 115k1316 entriesPushed today
94

Awesome Python

vinta/awesome-python

Curated Python frameworks, libraries and resources.

Fresh★ 324k504 entriesPushed today
94

Awesome C++

fffaraz/awesome-cpp

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Fresh★ 74k1358 entriesPushed yesterday
94

Awesome Go

avelino/awesome-go

Curated Go frameworks and libraries.

Fresh★ 186k3119 entriesPushed yesterday
94

Awesome PHP

ziadoz/awesome-php

A curated list of amazingly awesome PHP libraries, resources and shiny things.

Fresh★ 33k87 entriesPushed 2 days ago