/awesome-elm

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

Awesome Elm

A community driven list of useful Elm tutorials, libraries and software.

Inspired by the awesome list thing. Feel free to improve this list.

Awesome Build Status

Table of Contents

Examples

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.

⬆️ back to top

Learn

Learn what this awesome thing is.

⬆️ back to top

Articles

Read the essentials. Check the official Elm blog: elm-lang.org/blog

⬆️ back to top

Videos

Watch great talks about Elm

⬆️ back to top

Podcasts

Listen to podcasts about Elm

⬆️ back to top

Libraries

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.

⬆️ back to top

Tools

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.

⬆️ back to top

##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

⬆️ back to top

Package managers

Place to share Elm libraries.

  • elm-package - Command line tool to share Elm libraries.

⬆️ back to top

Boilerplates

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.

⬆️ back to top

Misc

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.

⬆️ back to top

Support

Where to find help.

  • Mailing list - Google discussion group.
  • Reddit - Elm board on reddit.
  • IRC - Ask questions on elm freenode.
  • Slack - Elm slack community.

⬆️ back to top

Who to follow

Follow for fresh updates for free. Use #elmlang or #elm hashtag.

Official Elm Evan Czaplicki Richard Feldman Noah Hall Elm Weekly

⬆️ back to top

More awesome

Discover other amazingly awesome lists.

Awesome Elm is just a part of awesome thing, get more here:

⬆️ back to top

License

CC0

To the extent possible under law, @isRuslan has waived all copyright and related or neighboring rights to this work.