User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome Elm

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

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Dec. 4, 2020, 3:04 a.m.

Thank you sporto & contributors
View Topic on GitHub:
sporto/awesome-elm

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

Learn

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

4.12K
775
11m
BSD-3-Clause

A set of koans for learning Elm

231
58
1y 27d
MIT

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

423
34
8m
n/a

An overview of Elm syntax and features

927
45
2y 7m
MIT
66
9
3y 10m
BSD-3-Clause

General information and in-depth guide with examples.

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

Elm tutorial with exhaustive examples and descriptions.

A gentle introduction to the Elm programming language.

A collection of common patterns in Elm.

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

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

Adaptations for Elm from Ninety-Nine Haskell Problems.

Two tutorials on building web apps with Elm.

a brief overview of Elm as a programming language.

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

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

Outdated Tutorials and books (Elm 0.18 or earlier)

A take-home application server written in Elm and only Elm

364
15
4y 9m
BSD-3-Clause

Learn how to build reactive web apps using Elm.

Series of articles about fundamentals and advanced topics.

A tutorial on developing single page web applications with Elm.

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

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

Articles

Why Elm?

thoughts on programming

1.41K
91
93d
n/a

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

This article discusses topics about Elm from a business perspective

Miscellaneous articles

A blog with various topics about Elm.

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

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

Outdated articles (Not relevant for current Elm architecture)

A collection of tips for people using Elm from a web-dev background

60
3
4y 10m
BSD-3-Clause

Adventures in Reactive Web Development

152
5
4y 6m
MIT

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.

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

Playlists

Miscellaneous videos

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

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.

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

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

ElmLive](https://www.youtube.com/playlist?list=PLDA4wlOlLJvWSYo3KiEa4q4ETkXpTaKlw) - elm live video examples.

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

Video tutorials

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

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

News

A weekly newsletter about Elm

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

All Elm news in one place

Podcasts

A podcast about the people in the Elm community.

A deep dive into specific problems to help the Elm community.

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

Individual Podcast episodes

Elm with Evan Czaplicki and Richard Feldman

Elm and Functional Programming with Richard Feldman.

Elm with Evan Czaplicki and Richard Feldman.

Elm with Richard Feldman and Evan Czaplicki.

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

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

Richard Feldman discusses how Elm compares to React.js

Testing

Write unit and fuzz tests for Elm code.

188
27
13d
BSD-3-Clause

Test Elm programs

55
14
4m
MIT

Describe the behavior of Elm HTML applications

41
3
10m
MIT

Tools

A tool that allows you to analyse your Elm code, identify deficiencies and apply best practices.

416
48
6m
MIT

Elm offline documentation previewer

108
6
6m
n/a

elm-format formats Elm source code according to a standard set of rules based on the official Elm Style Guide

1.23K
133
39d
BSD-3-Clause

Install, upgrade and uninstall Elm dependencies

131
2
70d
MIT

Query for information about values in elm source files.

153
14
3y 5m
n/a

Analyzes Elm projects, to help find mistakes before your users find them.

104
4
16d
BSD-3-Clause

👾 JS type systems interportability

213
5
1y 11m
n/a

Automated dependency update pull requests.

A flexible dev server for Elm. Live reload included!

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

Elm-based static site generator.

Code Generators

OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

7.01K
2.52K
2d
Apache-2.0

Generate TypeScript declaration files for your elm ports!

157
10
8m
BSD-3-Clause

Generate JSON encoders/decoders based on Elm types.

0
0
4d
n/a

Generate types and converters from JSON, Schema, and GraphQL

5.62K
497
40d
Apache-2.0

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

59
7
25d
MIT

Haskell: Derive Elm types from Haskell types

94
20
6m
n/a

Generate Elm types, encoders, and decoders from Haskell types

39
3
4m
BSD-3-Clause

put some tailwind in your elm

61
8
64d
MIT

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

Run Elm

Run Elm code from the command line

40
6
2y 106d
MIT

The Elm Live Editor

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

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

Compile and bundle

Compiler for Elm, a functional language for reliable webapps.

6.21K
542
7m
BSD-3-Clause

Webpack loader for the Elm programming language.

521
87
100d
BSD-3-Clause

Grunt plugin that compiles Elm files to JavaScript.

18
8
3y 10m
BSD-3-Clause

Bundle Elm using Parcel

Atom

Elm snippets for Atom

6
2
4y 8m
MIT

Elm code linter for the Atom editor.

Syntax highlighting and autocompletion for the Atom editor.

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

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

Emacs

Elm mode for emacs

351
61
4m
GPL-3.0

IntelliJ

Elm language support for IntelliJ, WebStorm, PhpStorm and PyCharm (JetBrains)

296
32
10d
MIT

Sublime Text

Elm support for Sublime's LSP plugin

3
0
12d
MIT

Language server implementation for Elm

274
33
4d
MIT

Sublime Text plugin to run elm-format on save

14
2
1y 118d
BSD-3-Clause

Syntax Highlighting for Elm in Sublime Text.

Vim/Neovim

Elm syntax support for vim

0
0
2y 5m
GPL-3.0

Elm plugin for Vim

562
105
72d
BSD-3-Clause

Offline Elm documentation access in your editor

8
0
4y 70d
MIT

emmet for vim: http://emmet.io/

5.34K
393
44d
MIT

Visual Studio Code

Elm Language Server integration

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

Other editors

Elm language plugin for Light Table

134
7
3y 9m
MIT

Package managers

Command line tool to share Elm libraries

216
70
2y 105d
n/a

Libraries

Elm's core libraries

2.5K
341
9m
BSD-3-Clause

Use HTML in Elm!

342
95
1y 50d
n/a

Write unit and fuzz tests for Elm code.

188
27
13d
BSD-3-Clause

Make HTTP requests in Elm

133
46
1y 27d
n/a

What if you never had to write CSS again?

966
84
39d
BSD-3-Clause

Typed CSS in Elm.

1.09K
172
78d
BSD-3-Clause

Autogenerate type-safe GraphQL queries in Elm.

634
80
18d
n/a

Search Elm documentation for operators, function signatures, etc.

Boilerplates

🍃 Create Elm apps with zero configuration

1.57K
145
6d
MIT

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

15
1
87d
MIT

⚡ A flexible dev server for Elm. Live reload included.

953
55
5m
MIT

Elm 0.19 webpack 4 starter template to build SPA

103
9
9d
MIT

Example showing hot module reloading for Elm 0.19 and Webpack

9
6
1y 10m
n/a

Learn how Elm, Parcel, Cypress and Netlify work together. Get started with Elm navigation, routes, remote data and decoder.

105
2
4m
MIT

Outdated Boilerplates

Boilerplate for developing Elm apps on Webpack

885
125
3y 37d
n/a

Base project for Elm applications

121
20
2y 10m
MIT

Elm kit is web application boilerplate kit for development. This kit build on Brunch, Node, Sass, Elm-lang. It helps you to start development more productive following best practices.

51
5
50d
MIT

A simple Makefile able to create a new Elm app

3
0
3y 66d
BSD-3-Clause

Initialise scaffolding for a new Elm project

11
0
4y 58d
MIT

Generate a new Elm project from the command line (Elm 0.16+)

81
2
6m
Unlicense

👦 Very very basic elm + webpack 4 template

5
0
2y 41d
n/a

Frameworks

Start an Elm SPA ready to the real world

269
15
4m
n/a

single page apps made easy

Examples

An example Elm single page application

446
88
1y 12m
n/a

The TodoMVC app written in Elm, nice example for beginners.

1.17K
333
1y 3d
BSD-3-Clause

Modular, heavily-documented Elm todo app with a json rest api

105
19
3y 69d
n/a

TodoMVC+Firebase in Elm+ElmFire

62
12
4y 5m
n/a

Elm meets Electron

86
12
2y 9m
ISC

tinder like app for gifs built with elm and firebase

228
14
4y 7m
n/a

Practical examples in Elm

205
20
1y 10m
n/a

The "Hello world" of Elm + Web Components.

52
2
3y 5m
MIT

An example of the ELM architecture on Android using Kotlin with Anko

59
3
4y 61d
MIT

minimum elm + phoenix setup, with webpack

54
5
2y 5m
GPL-3.0

An app built with Elm to explore new artists using the Spotify api.

52
3
9m
MIT

Elm project consuming PokéAPI

14
1
1y 113d
MIT

Chrome extension in elm that shows the latest currency bitcoins from Brazilian exchanges

3
1
3y 56d
n/a

A basic UI-clone of Instagram using Elm

17
3
87d
MIT

Kanban board built with Elm

291
25
1y 7m
BSD-2-Clause

Hacker News as a PWA built with Elm

1
4
3y 45d
GPL-3.0

A tool for building interactive fiction style stories in Elm.

111
9
6m
n/a

Electronic Cookbook

34
6
61d
n/a

The secure, private journal.

1
0
50d
n/a

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

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

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

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

Games

All Elm Games (hopefully)

89
16
105d
n/a

Community and Support

🌲 A list of companies using Elm in production.

357
76
72d
n/a

Elm Discourse instance (official forum).

Elm board on reddit.

IRC

Ask questions on elm freenode.

Elm slack community.

Conferences

Inspired by Elm

TEA for Bucklescript

575
38
8m
n/a

Write Elixir code using statically-typed Elm-like syntax (compatible with Elm tooling)

1.06K
25
8m
MIT

Elm-like abstractions for F# apps

539
67
62d
n/a

F# Functional App Development, using declarative dynamic UI

740
110
7d
n/a

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

7.86K
325
8d
MIT

F# in WebAssembly using Elmish

A predictable state container for JavaScript apps.

Beyond the DOM

Bringing the wonders of Elm to the iOS platform

153
7
2y 10m
BSD-3-Clause

Experiment to compile something Elm-ish to Wasm

16
0
2y 9m
n/a

Maintained at: https://github.com/the-sett/elm-serverless

167
18
1y 92d
MIT

Who to follow