A community driven list of useful Elm tutorials, libraries and software.
Inspired by the awesome list thing. Feel free to improve this list.
Some good apps written in Elm.
- Official list - Examples from basic to big-project in official website.
- Builtwithelm - Web site built with elm with list of projects and apps built with Elm.
- Elm Joust — a two-player fighting game written in Elm.
- Tetris — A Tetris game for the web browser written in Elm.
- Vessel - A "tunnel" game written in Elm!
- Sliding Puzzle - Configurable sliding puzzle game written in Elm.
- 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, The Elm Architecture and Firebase as backend.
- <elm-ement> – Minimal example of a custom element.
- Elm Playground - Tiny Elm projects implemented for the sake of learning by example.
- 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!
- Elm Architecture in Android - An example Android application implemented with the Elm Architecture using the Kotlin programming language and Anko library.
Learn what this awesome thing is.
- Official tutorial — General information and in-depth guide with examples.
- Elm in Action — In-depth book for Elm beginners, from Manning Publications.
- Elm’s Time Traveling Debugger - Debugger that lets you travel backwards and forwards in time.
- Architecture Tutorial - How to create modular Elm code that scales nicely with your app.
- Start app - Make an app, start it up.
- Elm: Building Reactive Web Apps - Learn how to build reactive web apps using Elm.
- Elm: Signals, Mailboxes & Ports - Create more reactive Elm apps by mastering signals.
- Learn you an Elm - Elm tutorial with exhaustive examples and descriptions.
- 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 cheat sheet - Syntax and features overview.
- Learn Elm in Y Minutes - Syntax and features overview. The Elm page on learnxinyminutes.com
- A Concise Introduction to Elm - High overview of language features.
- Elm Maybe - Dealing with null/Nothing - Working with the Maybe type, with nicely commented code examples.
- Elm Topic on DailyDrip - Daily continuing education on Elm, videos and text, with new content every day.
- Exercism Elm Track - Collection of Elm exercises.
- Elm Seeds - Short screencasts to teach you the Elm programming language from Erik Person.
- Elm For Begginers - Video Course - Build your first Elm Web App.
- Single-Page Web Apps in Elm - Five parts tutorial on Elm.
- Elm Koans - Practice exercises for learning Elm.
Read the essentials. Check the official Elm blog: elm-lang.org/blog
- Architecture in Elm — Ideas and guidelines for architecting larger applications in Elm to be modular and extensible.
- Blazing Fast HTML - Virtual DOM in Elm.
- FP with games in Elm - Switching from imperative to functional programming with games in Elm.
- Learning FP the hard way - Experiences on the Elm language.
- Introduction to Rx - The introduction to Reactive Programming you've been missing.
- Elm for Web Developers - A collection of notes for web developers looking into moving to Elm.
- Introducing Elm to JS Web Apps - An article explaining how to get started with Elm by integrating it with your exisiting Javascript framework
- How Elm Made Our Work Better - How a team built a business-critical web app for a customer using Elm.
- 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.
- 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.
- 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.
- Move fast and don’t break things. Running a startup on Elm - Some thoughts on Elm development by a swedish startup.
- Blog of Brian Hicks - A blog with various topics about Elm.
Watch great talks about Elm
- Evan Czaplicki: Let's be mainstream! User focused design in Elm - A talk from the father of Elm about the philosophy behind the language.
- Richard Feldman: Make the Back-End Team Jealous: Elm in Production - A talk about Elm and initial steps to use it in production.
- Richard Feldman: Effects as Data - A talk about how Elm manages side effects.
- Jamison Dance: Rethinking All Practices - Building Applications in Elm - 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 - A talk that gives a broad, high-level introduction to Elm.
- Egghead.io: Elm videos - Egghead's Elm video training, many of which are free.
- jadams's training videos - A neato series of bite-sized Elm training videos, many of which are free.
- Elm Basics - Walk through all the syntax and basic ideas in Elm as a general programming language.
- Elm Conf 2016 - All talks from elm-conf 2016
- Amitai Burstein: Frontend with Guarantees - A talk from You Gotta Love Frontend 2016
- Jessica Kerr: Adventures in Elm - A talk about the combination of functional programming with Elm at GOTO Chicago 2016.
Listen to podcasts about Elm
- Elixir Fountain Evan Czaplicki 2016-07-11 - Elm with Evan Czaplicki.
- 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.
- JavaScript Jabber 175 - Elm with Evan Czaplicki and Richard Feldman.
- Ruby Rogues 212 - Elm with Richard Feldman and Evan Czaplicki.
- 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.
- Mostly Erlang Podcast 32 - Elm with Evan Czaplicki.
- Elm Town - A podcast about the people in the Elm community.
Useful helpers to build apps.
- elm-core - Elm Core Libraries.
- elm-html - Use HTML in Elm, based on the idea of a "virtual DOM".
- elm-test - A unit testing framework for Elm.
- elm-router - Easy routing in Elm.
- elm-http - Make HTTP requests in Elm.
- elm-http-builder - Build and handle JSON requests more naturally than with low-level elm-http.
- elm-console - Elm library to read and write to the console in Node.
- Lazy - Lazy Evaluation in Elm.
- elm-ui - UI Library in Elm.
- elm-mdl - Material Design component library in Elm. With demo.
- elmfire - Use Firebase as backend. For higher level API: elmfire-extra.
Tools around Elm platform.
- elm-compiler - Compiler for the Elm programming language.
- elm-make - A build tool for Elm projects.
- elm-reactor - Interactive development tool that makes it easy to develop and debug Elm programs.
- elm-live - A flexible dev server for Elm. Live reload included!
- elm-repl - A REPL for Elm.
- elm-package - CLI to share Elm libraries.
- elm-init - Interactive setup for new Elm projects.
- elm-new - Generate initial project scaffolding based on a template.
- elm-format - Automatic Elm code formatter adhering to Elm Style Guide.
- grunt-elm - Grunt plugin that compiles Elm files to JavaScript.
- elm-webpack-loader - Webpack loader for the Elm programming language.
- servelm - A project enabling server-side use of Elm.
- elm-oracle - Query for information about values in elm source files. Used by most editor plugins.
- create-elm-app - Create Elm apps with no build configuration.
- html-to-elm - Convert HTML to Elm Html. Useful when porting an app to Elm.
- elm-instant - atom package to try your elm code from the editor. Provides a visual REPL and a preview pane.
##Editor plugins
Tools to support Elm in code editors.
- 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.
- emacs-elm-mode - Syntax highlighting, Elm REPL, Elm make and Elm format integration for the Emacs editor.
- elm-light-table - Syntax highlighting, REPL, autocompletion, package management and much more for Light Table.
- Elm Language Support - Syntax highlighting, REPL, autocompletion, and more for Sublime Text 2 and 3.
- Elm-vim - Elm mode for vim.
- vim-elm-help - Offline Elm documentation access in your editor
- elm-plugin - Elm plugin for IntelliJ IDEA.
- Elm Visual Studio Code Support - Syntax highlighting, Snippets, Function information, REPL, Reactor support (Webserver/Debugger) - Starting/Stopping
Place to share Elm libraries.
- elm-package - Command line tool to share Elm libraries.
Good starting point for a new Elm project.
- 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.
Everything that you need to see.
- Elm Search - Search Elm documentation for operators, function signatures, etc.
- Try Elm - Write and compile elm code online!
- 404 Elm Street - A fun WebGL game built with Elm.
- Debug Elm - Debug elm code online.
- Haskell to Elm - Collection of examples on places where Elm is different to Haskell, targetted at Elm beginners coming from Haskell backgrounds.
- elmflux - Visualization of Elm Signals.
Where to find help.
- Mailing list - Google discussion group.
- Reddit - Elm board on reddit.
- IRC - Ask questions on elm freenode.
- Slack - Elm slack community.
Follow for fresh updates for free. Use #elmlang or #elm hashtag.
![]() |
||||
---|---|---|---|---|
Official Elm | Evan Czaplicki | Richard Feldman | Noah Hall | Elm Weekly |
Discover other amazingly awesome lists.
Awesome Elm is just a part of awesome thing, get more here:
To the extent possible under law, @isRuslan has waived all copyright and related or neighboring rights to this work.