• Stars
    star
    3,607
  • Rank 12,285 (Top 0.3 %)
  • Language
  • Created over 9 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

Awesome Elm


Awesome Build Status

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)

πŸ” 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.

πŸ” back to top


Videos

Watch great talks about Elm

Playlists

Miscellaneous videos

Video tutorials

πŸ” 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

πŸ” back to top


Testing

Tools and libraries to test your Elm applications

πŸ” back to top


Code generators

πŸ” back to top


Package managers

Place to share Elm libraries.

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

πŸ” 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.

πŸ” 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.

πŸ” 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.

πŸ” back to top


Static site generators

πŸ” back to top


Showcase generators

  • Elm Book - Rich documentation builder based on Storybook and HexDocs.
  • Elm UI Explorer - Showcase your views and states.

πŸ” 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.

πŸ” back to top


Compile and bundle

Unmaintained

  • grunt-elm - Grunt plugin that compiles Elm files to JavaScript.

πŸ” back to top


Other tools

Useful tools related to Elm.

πŸ” 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.

πŸ” 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.

πŸ” 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.

πŸ” back to top


Conferences

πŸ” 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.

πŸ” 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

πŸ” back to top


Who to follow

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

Official Elm Evan Czaplicki Richard Feldman 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

More Repositories

1

elm-example-app

An example Elm single page application
Elm
441
star
2

elm-tutorial

A guide to building web applications using Elm 0.18
Elm
397
star
3

hop

[Deprecated] Navigation and routing helpers for single page applications in Elm
Elm
293
star
4

planetproto

Understanding JavaScript Prototypes - Workshop
JavaScript
219
star
5

jquery_io.js

A jQuery plug-in for transforming data between different formats
JavaScript
138
star
6

elm-patterns

A collection of common patterns for Elm
Elm
108
star
7

elm-select

A selection input with auto-complete
Elm
49
star
8

rails-go-to-spec-sublime

Sublime Text plug-in for jumping to Rails spec files
Python
30
star
9

erl

URL parsing library for ELM
Elm
28
star
10

elm-navigation-pushstate-example

Example Elm application with push state navigation
Elm
26
star
11

hugo-remark

A theme for using remark.js with hugo
CSS
22
star
12

imm

Immutable collections built on top of seamless-immutable
JavaScript
19
star
13

gleam-validator

Validation library for Gleam
Erlang
14
star
14

elm-workshop

An introductory workshop to learn Elm
Elm
14
star
15

elm-shooter

Side scroll shooter in Elm
Elm
13
star
16

elm-dropdown

A dropdown component for Elm
Elm
12
star
17

namespacer.js

namespacer.js
JavaScript
10
star
18

rails-elm-integration

rails-elm-integration
JavaScript
9
star
19

elm-tutorial-assets

Code for elm-tutorial.org
Elm
8
star
20

rails-go-to-spec-vscode

rails-go-to-spec-vscode
TypeScript
8
star
21

bliss

Experiment on building a micro web framework for Gleam
Gleam
7
star
22

gleam_string_builder

A Gleam library for building strings
Erlang
7
star
23

save-up

SaveUp
Elm
5
star
24

rocket-graphql

A simple example of GraphQL using Rocket in Rust
Rust
5
star
25

exercism

Exercism answers
F#
5
star
26

qs

Query String parser for Elm
Elm
5
star
27

elm-crud

Testing elm
Elm
4
star
28

collaborator

A simple gem for injecting dependencies into classes. I got bored of copying the same code again and again so I made this simple gem.
Ruby
4
star
29

be_taskable

Be Taskable - A Ruby Gem for managing user tasks
Ruby
4
star
30

canjs_demo_photos

A CanJS demo app - basic photo browser
JavaScript
3
star
31

giraffe-graphql-poc

Trying F#
F#
3
star
32

PHP-Table-Creator

PHP
3
star
33

advent-of-code-2022

advent-of-code-2022
Gleam
3
star
34

explore-graph-ocaml

Trying Ocaml
OCaml
2
star
35

flash_video_player

FLV video player
2
star
36

cloneit.js

A simple utility for creating objects with prototype inheritance
JavaScript
2
star
37

gleam_qs

A query string parser for Gleam
Erlang
2
star
38

dataset

CRUD helpers for Elm
Elm
2
star
39

time-distance

Elm time distance
Elm
2
star
40

test-coverage

Test coverage is a lie
Python
2
star
41

devtalks.net

Source code for devtalks.net
JavaScript
2
star
42

repro-postcss-mixin

repro-postcss-mixin
JavaScript
2
star
43

advent-of-code-2017

advent-of-code-2017
Nim
1
star
44

canjs_demo

A small CanJS demo app
JavaScript
1
star
45

components_strategies

JavaScript
1
star
46

service_objects

service_objects
Go
1
star
47

gleam_codec

Gleam Codec
Erlang
1
star
48

progressive-js-example

A progressive JS example
JavaScript
1
star
49

mixable.js

A simple mixins utility for javascript
JavaScript
1
star
50

nathan_uni

JavaScript
1
star
51

js_image_carousel

A JS slideshow / image slider
JavaScript
1
star
52

lambda-rust-example

Rust
1
star
53

RoadTripPlanner

JavaScript
1
star
54

euler-problems

https://projecteuler.net
OCaml
1
star
55

kic-go

Kids Investment Company
JavaScript
1
star
56

validator.js

A generic validator for javascript (Not for forms)
JavaScript
1
star
57

ocaml_validator

A validator library for OCaml
OCaml
1
star
58

grunt-goserver

Grunt task to spawn and reload a Go server
JavaScript
1
star
59

elm-foundations

Elm
1
star
60

elm-number-input

An Elm input that allows only numbers
Elm
1
star
61

node-videoinfo

A node module for retrieving video information from popular services
JavaScript
1
star
62

awesome-dev-tools

A collection of great tools for web development
1
star
63

collec

JS Model collection
JavaScript
1
star
64

publisher.js

A Publish/Subscribe / Observer library in Javascript
JavaScript
1
star
65

node-confreaks

A node module for scraping confreaks
JavaScript
1
star
66

unison-wordle

1
star
67

elm-graphql-experiment

elm-graphql-experiment
Elm
1
star
68

elm-autocomplete

Unmaintained: Use https://github.com/sporto/elm-select instead
Elm
1
star
69

ember-vs-can

ember-vs-can
JavaScript
1
star
70

advent-of-code-2020

Advent of code 2020 in Gleam
Erlang
1
star
71

polylinear-scale

A polylinear scale for Elm
Elm
1
star
72

explore-graphql-haskell

Exploring GraphQl with Haskell
Haskell
1
star