awesome-elm
by sporto
A curated list of useful Elm tutorials, libraries and software. Inspired by awesome list. Feel free to contribute. ![]()
AI summary
Elm resource list
A curated collection of resources for learning and improving skills with the Elm programming language
- stars
- 3.6K
- forks
- 224
- watching
- 142
- awesome lists
- 6
- entries
- 235
What's in the list
235 links in 40 sections, with live GitHub stats.activeno commit in 2y
Table of Contents
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
- 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
- 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
- A nice app on Elm street
An introduction to Elm
- The Elmish Book
Building web applications in following The Elm Architecture from first principles
- Elm patterns
A collection of coding patterns
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 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
FP with games in Elm
Switching from imperative to functional programming with games in Elm
- 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
- 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
- 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
- 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
+ - 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
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 ( is an improved version of this)
elm-gql
Generate GraphQl client code from GraphQL queries
elm-graphql
Generate GraphQl client code from GraphQL schemas
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
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
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
Static analysis
Elm Analyse
Linter for the Elm programming language
Elm Review
Code reviewer for the Elm programming language
Static site generators
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
in watch mode. Fast and reliable
Compile and bundle
elm-compiler
The official Elm compiler
elm-webpack-loader
Webpack loader Elm
- Parcel
Bundle Elm using Parcel
vite-plugin-elm
Vite plugin for Elm
Compile and bundle / Unmaintained
grunt-elm
Grunt plugin that compiles Elm files to JavaScript
Other tools
- Elm Catalog
A catalog of Elm tools
- Dependabot
Automatic update PRs for your elm.json
Elm Doc Preview
Elm offline documentation previewer
Elm Format
Automatic Elm code formatter adhering to
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
- 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 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. / /
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, 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 -
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 shows how to build a "chose your own adventure" game; perfect for beginners
Ari's Garden
A recipe 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
Regex Nodes
A , 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
- Discourse
Elm Discourse instance (official forum)
- Reddit
Elm board on reddit
- IRC
Ask questions on elm freenode
- Slack
Elm slack community
Conferences
Inspired by Elm
- Bolero
F# in WebAssembly using Elmish
Bucklescript-TEA
The Elm Architecture based on OCaml / Reason and
Elchemy
Write Elixir code using statically-typed Elm-like syntax
Elmish
Elm-like abstractions for F# apps
Fabulous
F# Functional App Development, using declarative dynamic UI
Iced
A cross-platform GUI library for Rust, inspired by Elm
- Redux
A predictable state container for JavaScript apps
- 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
More awesome
awesome
by
Nothing in this list matches your filter.
Featured in 6 awesome lists
Each link jumps to the spot where the list mentions awesome-elm.