awesome-elm
Elm resource list
A curated collection of resources for learning and improving skills with the Elm programming language
A curated list of useful Elm tutorials, libraries and software. Inspired by awesome list. Feel free to contribute.
4k stars
142 watching
222 forks
last commit: 5 months ago
Linked from 6 awesome lists
awesomeawesome-listelmelm-appselm-languageelm-newselm-tutorialelm-videos
Awesome Elm / Table of Contents | |||
Contribution Guidelines | 3,609 | 5 months ago | |
Awesome Elm / 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 | 4,172 | almost 5 years ago | 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 | 235 | about 5 years ago | Practice exercises for learning Elm |
Learn Elm | 482 | 23 days ago | 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 | 951 | over 6 years ago | 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 | 67 | almost 8 years ago | 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 | 7,553 | 4 months ago | 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 | 46 | 28 days ago | Useful resources for programming language theory & development in Elm |
Awesome 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 | 356 | over 8 years ago | 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 | ||
Awesome Elm / 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 | ||
Awesome Elm / 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 | 1,577 | 2 months ago | 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 | ||
Awesome Elm / 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 | ||
Awesome Elm / Articles / Outdated articles (Not relevant for current Elm architecture) | |||
Elm for Web Developers | 56 | almost 9 years ago | 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 | ||
Awesome Elm / 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 | ||
Awesome Elm / 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 | ||
Awesome Elm / 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 | ||
Awesome Elm / 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) | ||
Awesome Elm / 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 | ||
Awesome Elm / Testing | |||
Elm test | 237 | 9 months ago | Unit and fuzz tests |
Elm Program test | 93 | 6 months ago | Test complete Elm programs |
Elm Spec | 29 | over 1 year ago | Describe the behavior of Elm programs |
Awesome Elm / Code generators | |||
Elm Bridge | 100 | about 2 months ago | Generate Elm types from Haskell |
Elm CodeGen | 138 | about 2 months ago | Generate Elm code |
Elm TS Interop | 42 | over 1 year ago | Build up Encoders/Decoders between Elm and TypeScript |
Elm TypeScript Interop | 165 | about 3 years ago | Generate TypeScript definitions from Elm ( is an improved version of this) |
elm-gql | 69 | 2 months ago | Generate GraphQl client code from GraphQL queries |
elm-graphql | 779 | 5 months ago | Generate GraphQl client code from GraphQL schemas |
haskell-to-elm | 61 | 4 months ago | 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 | 88 | 4 months ago | Generates Elm types, JSON decoders, JSON encoders and fuzz tests from JSON schema specifications |
OpenApi Generator | 21,872 | 4 days ago | Generate OpenApi types for Elm |
PostCSS Elm Tailwind | 98 | almost 2 years ago | Put some Tailwind in your Elm |
Protoc Gen Elm | 16 | 10 days ago | Generate Protobuf En/Decoders from .proto files |
Quicktype | 12,452 | 3 months ago | Generate JSON decoders and encoders from JSON |
Travelm Agency | 47 | 3 months ago | Generate typesafe Elm code from translation files |
Awesome Elm / Package managers | |||
elm-package | 214 | about 6 years ago | Command line tool to share Elm libraries |
Awesome Elm / 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 | ||
Awesome Elm / Boilerplates | |||
create-elm-app | 1,685 | 19 days ago | Create Elm apps with no build configuration |
elm-boil | 20 | over 1 year ago | Command Line Utility for creating an Elm boilerplate project easy to run, build and get deployed |
elm-live | 1,053 | over 2 years ago | A flexible dev server for Elm. Live reload included |
elm-webpack-4-starter | 112 | 3 months ago | Elm webpack 4 starter template |
example-elm-hot-webpack | 8 | almost 6 years ago | Example showing hot module reloading for Elm 0.19 and Webpack |
Elm Batteries | 117 | about 3 years ago | 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 | ||
Awesome Elm / Boilerplates / Outdated Boilerplates | |||
elm-webpack-starter | 861 | almost 3 years ago | A simple Webpack setup for writing Elm apps |
elm-app-boilerplate | 120 | almost 7 years ago | A fully-featured base project for Elm apps: Webpack, HMR, ES6, JS and Elm tests, Semantic UI, sample code and more |
elmkit | 52 | about 1 year ago | A lightweight Brunch based setup for web app. Includes Brunch, Hot Module Replacement, Elm, Scss, Elm tests |
elm-boilerplate | 3 | about 7 years ago | A simple Makefile able to create Elm app |
elm-init | 11 | about 8 years ago | Interactive setup for new Elm projects |
elm-new | 81 | over 4 years ago | Generate initial project scaffolding based on a template |
elm-webpack-starter-kid | 5 | about 6 years ago | A very very basic elm + webpack 4 template |
generator-elm-mdl | 0 | 5 months ago | Yeoman generator for a simple elm application utilizing Material Design |
Awesome Elm / Frameworks | |||
elm-spa | Framework for making single page apps in Elm | ||
Elm Land | A framework for building Elm applications | ||
Spades | 302 | over 1 year ago | Start an Elm SPA ready to the real world |
Awesome Elm / Static analysis | |||
Elm Analyse | 415 | over 1 year ago | Linter for the Elm programming language |
Elm Review | 255 | about 1 month ago | Code reviewer for the Elm programming language |
Awesome Elm / Static site generators | |||
Elm Pages | Static site generator that prerenders HTML and hydrates into an Elm client-side app ( ) | ||
Elmstatic | Elm-based static site generator | ||
Awesome Elm / Showcase generators | |||
Elm Book | Rich documentation builder based on Storybook and HexDocs | ||
Elm UI Explorer | 215 | over 1 year ago | Showcase your views and states |
Awesome Elm / Run Elm | |||
Ellie | The Elm Live Editor | ||
Elm Editor | Advanced Elm Live Editor | ||
run-elm | 52 | about 3 years ago | — 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 | 155 | 25 days ago | in watch mode. Fast and reliable |
Awesome Elm / Compile and bundle | |||
elm-compiler | 7,553 | 4 months ago | The official Elm compiler |
elm-webpack-loader | 532 | 11 months ago | Webpack loader Elm |
Parcel | Bundle Elm using Parcel | ||
vite-plugin-elm | 201 | 10 days ago | Vite plugin for Elm |
Awesome Elm / Compile and bundle / Unmaintained | |||
grunt-elm | 19 | over 6 years ago | Grunt plugin that compiles Elm files to JavaScript |
Awesome Elm / Other tools | |||
Elm Catalog | A catalog of Elm tools | ||
Dependabot | Automatic update PRs for your elm.json | ||
Elm Doc Preview | 128 | almost 2 years ago | Elm offline documentation previewer |
Elm Format | 1,312 | over 1 year ago | Automatic Elm code formatter adhering to |
Elm JSON | 182 | over 1 year ago | Install, upgrade and uninstall Elm dependencies |
Elm Oracle | 150 | about 7 years ago | Query for information about values in elm source files. Used by most editor plugins |
type-o-rama | 244 | about 2 years ago | JS type systems interportability |
Html to Elm | Convert HTML to Elm | ||
elm-posix | 91 | about 3 years ago | Write CLI programs using Elm |
Litvis | 379 | 2 months ago | Literate Visualization with Elm |
Awesome Elm / Editor plugins / Atom | |||
atom-linter-elm-make | Elm code linter for the Atom editor | ||
atom-elm-snippets | 6 | almost 8 years ago | 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 | ||
Awesome Elm / Editor plugins / Emacs | |||
emacs-elm-mode | 376 | over 1 year ago | Syntax highlighting, Elm REPL, Elm make and Elm format integration for the Emacs editor |
Awesome Elm / Editor plugins / IntelliJ | |||
elm-plugin | 396 | 3 months ago | Elm plugin for IntelliJ IDEA |
Awesome Elm / Editor plugins / Sublime Text | |||
LSP-elm | 7 | about 1 month ago | Elm Language Server for Sublime (Recommended) |
Elm Language Server | 419 | 10 days ago | Language server implementation for Elm |
Elm Syntax Highlighting | Syntax Highlighting for Elm in Sublime Text | ||
Elm Format on Save | 23 | over 5 years ago | Sublime Text plugin to run elm-format on save |
Awesome Elm / Editor plugins / Vim/Neovim | |||
theJian/elm.vim | 0 | over 6 years ago | Elm syntax highlighting. Use with since ElmCast/elm-vim does not support Elm 0.19 |
ElmCast/elm-vim | 573 | over 3 years ago | Elm 0.18 mode for Vim/Neovim |
vim-elm-help | 7 | over 4 years ago | Offline Elm documentation access in your editor |
emmet-vim | 6,427 | 3 months ago | Markup expansion with elm support |
Awesome Elm / 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 | ||
Awesome Elm / Editor plugins / Other editors | |||
elm-light-table | 133 | over 7 years ago | Syntax highlighting, REPL, autocompletion, package management and much more for Light Table |
Awesome Elm / 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 | 436 | almost 6 years ago | A small SPA example in Elm to learn the basics |
TodoMVC | 1,216 | almost 5 years ago | Proper implementation of the TodoMVC app |
TodoMVC with JSON API | 104 | about 7 years ago | Bare-bones, modular, heavily-documented todo app with JSON API persistence |
TodoMVC/Firebase | 60 | over 8 years ago | Fork of TodoMVC demonstrating start-app, and Firebase as backend |
TodoMVC in Electron | 87 | about 2 years ago | Documented and tested implementation of the Elm TodoMVC app in Electron |
Gipher | 222 | over 8 years ago | A Tinder-like application for gifs built with elm and firebase! |
Collection of examples | 210 | almost 6 years ago | A collection of examples with advanced techniques for real-world Elm apps |
<elm-ement> | 49 | over 7 years ago | – Minimal example of a custom element |
Elm Playground | Tiny Elm projects implemented for the sake of learning by example | ||
Elm Architecture in Android | 59 | about 8 years ago | An example Android application implemented with the Elm Architecture using the Kotlin programming language and Anko library |
Elm + Phoenix + Webpack | 55 | over 6 years ago | A minimal Elm + Phoenix setup, using webpack instead of Brunch |
Spotify Mapper | 65 | over 1 year ago | Elm app integrated with Spotify Api to search and explore new artists |
Pokelmon | 15 | over 3 years ago | Elm project consuming PokéAPI |
JWT auth with Django + Elm | 20 | about 7 years ago | JSON Web Token (JWT) authentication using Django (backend) and Elm (frontend) |
Bitcoin BR Chrome Extension | 4 | about 7 years ago | Chrome extension built in Elm that shows the bitcoin value in all Brazilian exchanges |
Elmstagram | 18 | over 3 years ago | Basic UI Clone of Instagram / Articles - |
Kanban Board in Elm | 300 | over 5 years ago | 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 | 1 | about 7 years ago | A progressive web app built with Elm version 0.18, using the official Hacker-News API |
Elm Narrative Engine | 134 | over 1 year ago | 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 | 55 | almost 2 years ago | A recipe built as an SPA that also makes use of the Elm parser |
Bolster | 8 | over 3 years ago | An end-to-end encrypted journal app |
Conway's Game of Life | 0 | almost 2 years ago | Elm implementation of Conway's Game of Life |
Regex Nodes | 35 | 11 months ago | A , built with Elm |
Awesome Elm / Examples / Games | |||
elm-games | 143 | over 1 year ago | An excellent list of games made in Elm |
TheSpace App | 3 | over 2 years ago | A reddit place like DApp with blockchain and canvas(through port) integration in Elm |
Awesome Elm / Community and Support | |||
Companies using Elm | 468 | 13 days ago | A list of companies using Elm in production |
Discourse | Elm Discourse instance (official forum) | ||
Elm board on reddit | |||
IRC | Ask questions on elm freenode | ||
Slack | Elm slack community | ||
Awesome Elm / Conferences | |||
Elm Conf | |||
Elm Europe | |||
Elm in the spring | |||
Oslo Elm day | |||
Elm Japan | |||
Elm Camp | |||
Awesome Elm / Inspired by Elm | |||
Bolero | F# in WebAssembly using Elmish | ||
Bucklescript-TEA | 601 | 5 months ago | The Elm Architecture based on OCaml / Reason and |
Elchemy | 1,146 | over 4 years ago | Write Elixir code using statically-typed Elm-like syntax |
Elmish | 839 | about 1 month ago | Elm-like abstractions for F# apps |
Fabulous | 1,159 | 5 days ago | F# Functional App Development, using declarative dynamic UI |
Iced | 24,785 | 8 days ago | A cross-platform GUI library for Rust, inspired by Elm |
Redux | A predictable state container for JavaScript apps | ||
SwiftUI | |||
MAUI | .NET Multi-platform App UI | ||
Oolong | An Elm inspired Model-View-Update (MVU) implementation for Kotlin multiplatform | ||
Awesome Elm / Beyond the DOM | |||
iOS | 160 | about 6 years ago | A POC for using Elm 0.18 for native iOS Applications |
elmish-wasm | 17 | almost 7 years ago | A POC for compiling elm to Web Assembly |
elm-serverless | 167 | about 5 years ago | Run Elm 0.18 on Cloud Functions using the Serverless Frameworks |
elm-posix | 91 | about 3 years ago | Write CLI programs using Elm |
Awesome Elm / More awesome | |||
awesome | 334,113 | about 5 hours ago | by |
awesome-awesomeness | 32,097 | 6 months ago | by |