Code Monkey home page Code Monkey logo

awesome-elm's Introduction

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

awesome-elm's People

Contributors

bolshchikov avatar bradpearson avatar cmditch avatar dillonkearns avatar eeue56 avatar eskimoblood avatar gasperz avatar gothy avatar isruslan avatar janwirth avatar jdrgoms avatar jfmengels avatar lucamug avatar maciejsmolinski avatar nelsonic avatar pravdomil avatar readmecritic avatar ronanyeah avatar shalokshalom avatar simonewebdesign avatar sporto avatar teesloane avatar thomasweiser avatar tommcgurl avatar trytriangles avatar valentinogagliardi avatar wolfadex avatar yang-wei avatar yanisurbis avatar zigomir avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-elm's Issues

Several dead and outdated links

The first of the links in the Examples section, titled 'Official list - Examples from basic to big-project in official website.,' seems to be to a page full of dead links (almost 30 of them). I've noticed this too on a visit probably a few months ago. One of my browsers, Firefox Dev Edition, gives this error on opening any of the linked pages:

"Hmm. We’re having trouble finding that site.
We can’t connect to the server at try.elm-lang.org."

Maybe it's time to disable this link or completely remove it?

Status of this project

Hey @isRuslan

are you still willing and having time to maintain this?
No disrespect, just curious what the future of this project is, we all know how it is, sometimes life changes and you need spend you time in other communities :)

Search by topic e.g. "recursion"

After doing Learn You An Elm's chapter on recursion, I'd like to practise some recursion, so I came here to find some resources, but searching the page for "recursion" returned 0 results. I'd be happy to start this process by e.g. creating a file of keywords for Learn You An Elm and start with "recursion", so I could find it by searching the repository.

tag links with elm version

since elm 0.17 change a few things in a big way can we mark or sort the links according to versions?

easier to grasp whats current.

Add links to elm presentations and workshops possibly targetted at coworkers

Here are a few links that people on slack provided when I asked for resources to present elm to my coworkers, and give them a taste of what elm is :

There are two resources in french that might not be relevant to this repository.
The "payment form workshop" is usually animated and solved as a "mob programming" exercise according to Pascal Lemerrer (the author).

Would any of those (and maybe many more in the future) have their place in this repository? It seems it's a recurring question around "I'd like to convince my coworkers to switch to elm".

Seeds (Game)

Hi @isRuslan! Hope your weekend is going well.

While going through the list of examples, I noticed that @andrewMacmurray's Seeds game is not listed.

Andrew recently updated the game to Elm 0.19 and it even has tests!
I feel this Example App/Game is worthy of inclusion in the Examples list as it's a legitimately great game!

If you have no objections, I will PR the inclusion so other people can discover this awesomeness! 🌱

Validate pull requests with Travis

Hello, I wrote a tool that can validate README links (valid URLs, not duplicate). It can be run when someone submits a pull request.

It is currently being used by

Examples

If you are interested, connect this repo to https://travis-ci.org/ and add a .travis.yml file to the project.

See https://github.com/dkhamsing/awesome_bot for options, more information
Feel free to leave a comment πŸ˜„

Maintainer wanted ❀️

Awesome Elm is looking for a new maintainer to lead and support this list.
This list is activity updating and used by other people. At this moment its up to 3K ⭐️.

A new maintainer desirable profile:

  • elm coding experience
  • involved in community
  • being ready to spend your free time to support elm

If you feel yourself ready please send me an email to [email protected] with short introduction of yourself.

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.