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: Feb. 26, 2021, 9:05 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
769
1y 59d
BSD-3-Clause

A set of koans for learning Elm

231
57
1y 111d
MIT

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

430
34
11m
n/a

An overview of Elm syntax and features

926
45
2y 10m
MIT
66
9
4y 22d
BSD-3-Clause

Compiler for Elm, a functional language for reliable webapps.

6.32K
557
23d
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 12m
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
5m
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

59
3
5y 34d
BSD-3-Clause

Adventures in Reactive Web Development

152
5
4y 9m
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.

193
28
97d
BSD-3-Clause

Test Elm programs

55
14
6m
MIT

Describe the behavior of Elm HTML applications

41
3
1y 29d
MIT

Tools

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

418
49
9m
MIT

Elm offline documentation previewer

113
8
77d
n/a

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

1.24K
132
10d
BSD-3-Clause

Install, upgrade and uninstall Elm dependencies

137
4
44d
MIT

Query for information about values in elm source files.

153
14
3y 8m
n/a

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

121
5
3d
BSD-3-Clause

👾 JS type systems interportability

218
5
2y 52d
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.78K
2.79K
1d
Apache-2.0

Generate TypeScript declaration files for your elm ports!

162
10
11m
BSD-3-Clause

Generate JSON encoders/decoders based on Elm types.

0
0
7d
n/a

Generate types and converters from JSON, Schema, and GraphQL

6.01K
522
3d
Apache-2.0

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

63
7
7d
MIT

Haskell: Derive Elm types from Haskell types

95
21
9m
n/a

Generate Elm types, encoders, and decoders from Haskell types

44
4
7m
BSD-3-Clause

put some tailwind in your elm

75
9
78d
MIT

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

Run Elm

Run Elm code from the command line

41
6
2y 6m
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.32K
557
23d
BSD-3-Clause

Webpack loader for the Elm programming language.

526
91
3d
BSD-3-Clause

Grunt plugin that compiles Elm files to JavaScript.

19
8
4y 40d
BSD-3-Clause

Bundle Elm using Parcel

Atom

Elm snippets for Atom

6
2
4y 11m
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

359
61
4d
GPL-3.0

IntelliJ

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

303
34
9d
MIT

Sublime Text

Elm support for Sublime's LSP plugin

4
0
16d
MIT

Language server implementation for Elm

294
34
3d
MIT

Sublime Text plugin to run elm-format on save

13
2
1y 6m
BSD-3-Clause

Syntax Highlighting for Elm in Sublime Text.

Vim/Neovim

Elm syntax support for vim

0
0
2y 8m
GPL-3.0

Elm plugin for Vim

569
105
5m
BSD-3-Clause

Offline Elm documentation access in your editor

8
0
4y 5m
MIT

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

5.42K
396
4m
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 11m
MIT

Package managers

Command line tool to share Elm libraries

214
70
2y 6m
n/a

Libraries

Elm's core libraries

2.52K
340
17d
BSD-3-Clause

Use HTML in Elm!

342
96
1y 4m
n/a

Write unit and fuzz tests for Elm code.

193
28
97d
BSD-3-Clause

Make HTTP requests in Elm

135
46
1y 111d
n/a

What if you never had to write CSS again?

1.01K
86
4m
BSD-3-Clause

Typed CSS in Elm.

1.1K
172
5m
BSD-3-Clause

Autogenerate type-safe GraphQL queries in Elm.

667
86
14d
n/a

Search Elm documentation for operators, function signatures, etc.

Boilerplates

🍃 Create Elm apps with zero configuration

1.59K
145
77d
MIT

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

15
1
5m
MIT

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

970
55
8m
MIT

Elm 0.19 webpack 4 starter template to build SPA

102
9
29d
MIT

Example showing hot module reloading for Elm 0.19 and Webpack

9
6
2y 21d
n/a

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

107
2
7m
MIT

Outdated Boilerplates

Boilerplate for developing Elm apps on Webpack

884
123
3y 4m
n/a

Base project for Elm applications

121
21
3y 44d
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
4m
MIT

A simple Makefile able to create a new Elm app

3
0
3y 5m
BSD-3-Clause

Initialise scaffolding for a new Elm project

11
0
4y 4m
MIT

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

81
2
8m
Unlicense

👦 Very very basic elm + webpack 4 template

5
0
2y 4m
n/a

Frameworks

Start an Elm SPA ready to the real world

274
14
7m
n/a

single page apps made easy

Examples

An example Elm single page application

444
88
2y 79d
n/a

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

1.18K
331
1y 87d
BSD-3-Clause

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

105
18
3y 5m
n/a

TodoMVC+Firebase in Elm+ElmFire

61
12
4y 8m
n/a

Elm meets Electron

86
12
3y 5d
ISC

tinder like app for gifs built with elm and firebase

229
15
4y 9m
n/a

Practical examples in Elm

208
21
2y 23d
n/a

The "Hello world" of Elm + Web Components.

52
2
3y 8m
MIT

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

58
3
4y 4m
MIT

minimum elm + phoenix setup, with webpack

55
5
2y 7m
GPL-3.0

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

54
3
1y 0d
MIT

Elm project consuming PokéAPI

14
1
1y 6m
MIT

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

3
1
3y 4m
n/a

A basic UI-clone of Instagram using Elm

17
3
73d
MIT

Kanban board built with Elm

292
26
1y 10m
BSD-2-Clause

Hacker News as a PWA built with Elm

1
4
3y 4m
GPL-3.0

A tool for building interactive fiction style stories in Elm.

109
9
12d
n/a

Electronic Cookbook

34
5
4m
n/a

The secure, private journal.

1
0
4m
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)

92
18
17d
n/a

Community and Support

🌲 A list of companies using Elm in production.

364
79
5m
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

581
38
10m
n/a

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

1.08K
25
11m
MIT

Elm-like abstractions for F# apps

560
68
4m
n/a

F# Functional App Development, using declarative dynamic UI

782
112
15d
n/a

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

8.6K
356
3d
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

155
7
3y 40d
BSD-3-Clause

Experiment to compile something Elm-ish to Wasm

16
0
3y 10d
n/a

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

168
18
1y 5m
MIT

Who to follow