<img src="./assets/elm-logo.svg" height="180" width="180" />
<h1>Awesome Elm</h1>
<br />

A community driven list of useful Elm tutorials, libraries and
software. Inspired by the awesome list
thing. Feel free to
improve
this list.
Table of Contents
Learn
Learn what this awesome thing is.
Outdated
Tutorials and books (Elm 0.18 or earlier)
:top: back to
top
Articles
Read the essentials. Check the official Elm blog: elm-lang.org/blog
Why Elm?
Miscellaneous 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.
:top: back to
top
Videos
Watch great talks about Elm
Playlists
Miscellaneous videos
Video tutorials
:top: back to
top
News
Podcasts
Listen to podcasts about Elm
- 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).
Individual Podcast episodes
:top: back to
top
Testing
Tools and libraries to test your Elm applications
:top: back to
top
Code generators
:top: back to
top
Package managers
Place to share Elm libraries.
- elm-package -
Command line tool to share Elm libraries.
:top: back to
top
Libraries
You can find hundreds of high quality packages at:
- 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.
:top: back to
top
Boilerplates
Good starting point for a new Elm project.
- 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
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.
:top: back to
top
Frameworks
Projects that bring a framework approach to Elm (scaffolding,
route generation, etc)
- 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.
:top: back to
top
Static site generators
:top: back to
top
Showcase generators
- Elm Book -
Rich documentation builder based on Storybook and HexDocs.
- Elm UI
Explorer - Showcase your views and states.
:top: back to
top
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.
:top: back to
top
Compile and bundle
Unmaintained
- grunt-elm -
Grunt plugin that compiles Elm files to JavaScript.
:top: back to
top
Useful tools related to Elm.
:top: back to
top
Editor plugins
Tools to support Elm in code editors.
Atom
Emacs
- emacs-elm-mode -
Syntax highlighting, Elm REPL, Elm make and Elm format integration for
the Emacs editor.
IntelliJ
Sublime Text
Vim/Neovim
Visual Studio Code
Other editors
- elm-light-table -
Syntax highlighting, REPL, autocompletion, package management and much
more for Light Table.
:top: back to
top
Examples
Some good apps written in Elm.
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.
:top: back to
top
Community and Support
Where to find help.
- Discourse - Elm
Discourse instance (official forum).
- Reddit - Elm board on
reddit.
- IRC - Ask
questions on elm freenode.
- Slack - Elm slack
community.
:top: back to
top
Conferences
:top: back to
top
Inspired by Elm
Some projects influenced 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
- 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.
- SwiftUI
- MAUI
- .NET Multi-platform App UI
- Oolong - An Elm inspired
Model-View-Update (MVU) implementation for Kotlin multiplatform.
:top: back to
top
Beyond the DOM
At the moment Elm is heavily targeted towards the browser, here
are some experiments on using Elm outside 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
:top: back to
top
Who to follow
Follow for fresh updates for free. Use #elmlang or #elm hashtag.
:top: back to
top
More awesome
Discover other amazingly awesome lists.
Awesome Elm is just a part of awesome thing, get more here:
:top: back to
top
License
