2021 has been an exciting year for Elm, with many interesting packages, blog posts, videos, podcasts, demos, tutorials, applications, and so on.
This is a list of relevant material. I am sure there is stuff that I missed. Send me a DM in case you think there is something that I should add or remove.
If you want to keep up with Elm's related news:
- Subscribe to the Elm Weekly newsletter or follow it on Twitter
- Join the Elm group on Slack
- Check discourse.elm-lang.org
- Follow @elmlang on Twitter
- Check "Incremental Elm Discord" for working on Elm open source projects
- Listen to the Elm Radio podcast
Here we go 🚀
4ᵗʰ - The Elm Radio episode #021, elm-review Tips, revisits elm-review with some tips, useful workflows, and helpful packages.
4ᵗʰ - Éber Freitas Dias publishes the post Elm in the server (or anywhere else) with promises.
6ᵗʰ - Amanda Beiner publishes the post How to stop using your GraphQL API as a REST API.
8ᵗʰ - Diogo Silva publishes the post How to get unique values in an Elm list.
11ᵗʰ - Brian Hicks publishes the post Should Elm files be long or short?
16ᵗʰ - Kristian Pedersen publishes the last installment of the series "30 days of Elm".
18ᵗʰ - Simon Lydell releases elm-tooling CLI.
18ᵗʰ - The Elm Radio episode #022, elm-tooling with Simon Lydell, talks about how elm-tooling helps to manage versions of tools like elm-format and Elm.
18ᵗʰ - Álisson Morais publishes the post A gentle introduction to Elm.
19ᵗʰ - Kolja Lampe releases new versions of the server and the vscode extensions (2.0.0).
19ᵗʰ - Ulric Wilfred starts the video series Elm Goose-Driven Tutorial.
24ᵗʰ - Atle Wee Førre post the first video of the series Making a graphical editor in Elm (elm-ui).
26ᵗʰ - EJ Mitchell publishes Functional Programming as Algebra.
28ᵗʰ - Jeroen Engels publishes the post Safe dead code removal in a pure functional language.
29ᵗʰ - Evan Czaplicki releases a minor Elm release (0.19.1-5) that adds compatibility with Apple Silicon.
30ᵗʰ - Leonardo Taglialegne publishes elm-ui-with-context.
1ˢᵗ - The Elm Radio episode #023, elm-format, discusses the core features and philosophy of elm-format, as well as some hidden productivity tricks for getting more out of it.
4ᵗʰ - Cezar Halmagean releases the video How to Build an Instagram Card with Elm.
5ᵗʰ - Tereza Sokol launches elm-diff.
7ᵗʰ - Choon Keat talks about Elm: Introduction to a new popular programming language - TechSavvy.
9ᵗʰ - Dillon Kearns publishes the post TypeScript's Blind Spots.
9ᵗʰ - Aaron VonderHaar releases a new version of elm-format.
12ᵗʰ - The TMPDIR podcast publish the episode Using Elm for Frontend Development.
14ᵗʰ - James Carlson publishes the post Towards a Pure Elm Text Editor.
15ᵗʰ - Coding Cave publishes the first video of a series about Elm.
15ᵗʰ - The Elm Radio episode #024, elm-program-test, has Aaron VonderHaar sharing the fundamentals and best practices for his high-level Elm testing package, elm-program-test.
16ᵗʰ - Brian Hicks publishes the video elm-csv: a boring package.
16ᵗʰ - Coury Ditch publishes the post The trickiest Elm bug I’ve ever seen.
17ᵗʰ - David Farr publishes the post Event Sourcing Minesweeper.
18ᵗʰ - Jeroen Engels publishes the post Great compiler messages? Great test failure messages!
20ᵗʰ - The tread What are your favorite things about Elm? starts in discourse.
20ᵗʰ - Jeroen Engels publishes the post You thought you had no dead code?
22ⁿᵈ - Simon Lydell publishes the post How we made Elm and Google Translate work together.
22ⁿᵈ - Dwayne Crooks announces the official fork of Built with Elm.
23ᵗʰ - Jakub Hampl publishes the post Design your own Runtime.
24ᵗʰ - Tereza Sokol updates the Elm website.
28ᵗʰ - Martin Stewart gives an update about Ascii Collab.
1ˢᵗ - Matthieu Pizenberg launches elm-test-rs 1.0.0.
1ˢᵗ - Luca Mugnaini releases Elm Cheat Sheet.
1ˢᵗ - Brian Hicks publishes the post Trying (and Failing) to Speed Up String.startsWith.
1ˢᵗ - Yarith publishes the article Animate removed DOM elements.
2ⁿᵈ - Evan Czaplicki participates in the panel #PLTalk: PL Funding Panel with the Creators of Elm, Elixir, and Julia.
7ᵗʰ - Andrew MacMurray releases version 2.0.0 of Elm Simple Animation.
7ᵗʰ - Lucas Payr releases a new package: Elm-Static-Array - Fixed length arrays using Phantom Types.
10ᵗʰ - Flavio Corpa releases Declarative UIs without CSS with elm-ui.
12ᵗʰ - Dillon Kearns releases html-to-elm.com and elm-review-html-to-elm.
15ᵗʰ - The Elm Radio episode #026, Funding Open Source with Evan Czaplicki, has Evan Czaplicki sharing what he's learned about Open Source funding and the tradeoffs of different models.
16ᵗʰ - Matias Klemola continues his series of posts about Liikennematto.
16ᵗʰ - Emma Bastås releases elm-embed 0.1.0
17ᵗʰ - Daniel Kodaj releases a Pure Elm rich text editor.
20ᵗʰ - Dillon Kearns publishes the video tutorial elm-ts-interop-pro Setup.
20ᵗʰ - Lucas Payr releases Mezzo - A Card Game created in Elm.
21ˢᵗ - Matthieu Pizenberg releases elm-file 1.0.0, an alternative to elm/file.
22ⁿᵈ - Catherine Galkina publishes the post Comparing Elm with Reflex.
26ᵗʰ - Ju Liu publishes the post There and back again.
27ᵗʰ - Jan Wirth and David Beesley announce Funk, the visual frontend framework.
29ᵗʰ - The Elm Radio episode #027, elm-tailwind-modules, discusses using elm-tailwind-modules to build type-safe Tailwind views.
6ᵗʰ - Jeroen Engels publishes the post Global and configuration errors.
8ᵗʰ - Maciej Sikora talks at TypeScript Berlin Meetup about Elm in TypeScript, pattern matching and beyond.
11ᵗʰ - Erkal Selman releases The Red-Faced Cube puzzle.
12ᵗʰ - The Elm Radio episode #028, GitHub Actions, discusses best practices to setup GitHub Actions to make sure everyone has the same source of truth for checking your Elm code and deploying to production.
12ᵗʰ - Ryan Haskell-Glatz releases the game Unblank.
13ᵗʰ - Humio publishes the post Why we chose Elm for Humio’s web UI.
20ᵗʰ - Phil Wade publishes the post The Evolution of a Type.
23ʳᵈ - Alex Korban publishes Json2elm: generate elm/json decoders & encoders from a JSON sample.
24ᵗʰ - Jeroen Engels releases version 1.1.9 of elm-review and publishes the post Simplify.
26ᵗʰ - The Elm Radio episode #029, Writing an elm-review Rule, talks about how to write an elm-review rule from scratch.
26ᵗʰ - Jesse Warden publishes the guide React to Elm Migration.
26ᵗʰ - Jakub Hampl releases version 2.2.0 of elm-visualization.
27ᵗʰ - Ryan Haskell-Glatz releases version 6.0.0 of elm-spa.
27ᵗʰ - Luca Mugnaini releases elm-ecommerce.
27ᵗʰ - Diogo Silva publishes the post Elm, elm-ui and the building of a dropdown.
28ᵗʰ - Ju Liu publishes the post Elm at NoRedInk.
29ᵗʰ - Kasper Møller Andersen publishes the post Optimizing an Elm Library.
29ᵗʰ - Atle Wee Førre releases the video Building Rest APIs with elm? (experiment).
2ⁿᵈ - Paul Fioravanti publishes ＥＬＭＳＴＨＥＴＩＣＳ.
5ᵗʰ - Phil Hazelden publishes the post A reckless introduction to Hindley-Milner type inference.
10ᵗʰ - The Elm Radio episode #030, Debugging in Elm, talks about favorite debugging techniques, and how to make the most of Elm's guarantees when debugging.
10ᵗʰ - Alex Korban publishes the post Generating elm/json decoders with elm/json decoders.
11ᵗʰ - Andrey Kuzmin showcases a 3D model of Nefertiti (Note that the package has not been released, so just enjoy the demo).
12ᵗʰ - Joël Quenneville publishes the post Running Out of Maps.
18ᵗʰ - Alex Korban publishes the post Parse URLs with elm/url and Generating pipeline and applicative decoders with json2elm.
19ᵗʰ - Joël Quenneville publishes the post Pipeline Decoders in Elm.
22ⁿᵈ - Martin Janiczek publishes the first video of the series Writing a property-based testing library in Elm.
22ⁿᵈ - ABAB↑↓BA showcases a TEA simulator.
24ᵗʰ - The Elm Radio episode #031, Elm Code Generation, discusses different use cases for code generation in Elm applications.
1ˢᵗ - Jeroen Engels publishes the post Tail-call optimization in Elm.
1ˢᵗ - Dillon Kearns publishes the post Moving Faster with Tiny Steps in Elm.
4ᵗʰ - Sellooh publishes the first video of an Elm course in Portuguese (PT-BR).
7ᵗʰ - The Elm Radio episode #032, Elm's Universal Pattern, has Joël Quenneville sharing his wisdom on transforming and mapping in Elm, and how it applies across many Elm data types.
7ᵗʰ - Andrey Kuzmin showcases the ability of elm-obj-file to encode in OBJ format.
12ᵗʰ - McMaster Start Coding school showcases an Elm application to teach children how to code music.
14ᵗʰ - Stefan Ostermayr publishes the post Elm at Treefin.
16ᵗʰ - Katia Trifonova publishes the post Art of Tiling and Mind Coalescence.
21ˢᵗ - The Elm Radio episode #033, Accessibility in Elm, has Tessa Kelly explaining accessibility best practices and how to apply them in Elm.
22dn - Shuji Oba releases Ulmus, a Lisp implementation made with Elm.
24ᵗʰ - Elm Online Meetup - Video Analytics and Architecture in Elm by Chad.
24ᵗʰ - Elm Online Meetup - Video Building a Meetup clone on Lamdera by Martin Stewart.
28ᵗʰ - Martin S. release a clone of meetup.com.
29ᵗʰ - Ivan Gori publishes the post MEGA: Maybe Maybe is not the right choice.
2ⁿᵈ - André Dietrich showcases a generic API that can handle multiple document formats.
5ᵗʰ - The Elm Radio episode #34, API Design Lessons, talks about designing Elm APIs and how it applies when building applications and tools.
5ᵗʰ - Erkal Selman showcases 3D animations in Elm: Time-traveling made easy by The Elm Architecture.
5ᵗʰ - Andre Dietrich releases elm-generic.
5ᵗʰ - Jeroen Engels publishes the post How disable comments make static analysis tools worse.
7ᵗʰ - Jeroen Engels publishes the post Measuring cognitive complexity with elm-review.
13ᵗʰ - Albert Dahlin writes about CLI scripts in Elm (IO Monad).
14ᵗʰ - Pravdomil Toman releases an alternative browser for package documentation.
15ᵗʰ - Hans Hoffman adds Elm support for the Nova Editor.
19ᵗʰ - Tereza Sokol releases the library elm-charts.
19ᵗʰ - The Elm Radio episode #35, elm-spa v6, has Ryan Haskell-Glatz discussing the latest version of elm-spa, including authenticated pages and the updated file-based router.
20ᵗʰ - Kofi Gumbs talks Code Mesh Teaching WebGL to Dance to Music.
20ᵗʰ - Romario Fitzgerald publishes the post Install Elm 0.18.0 in 2021.
24ᵗʰ - Video S08E014 Modern Web Podcast - Elm with Richard Feldman.
25ᵗʰ - Elm appears on the Sunday crosswords puzzle of the NYT.
26ᵗʰ - Éber Freitas Dias publishes the post Pelmodoro - a Pomodoro app built with Elm.
27ᵗʰ - Mario Rogic talks about the release of v1.0.0 and gives a summary of what’s been happening.
29ᵗʰ - Kajetan Swiatek talks about Elm - a delightful language for learning functional programming.
1ˢᵗ - Dillon Kearns introduces elm-pages 2.0.
1ˢᵗ - elmcraft.org is planted.
2ⁿᵈ - Richard Feldman talks about The Edges of Cutting-Edge Languages.
4ᵗʰ - Andy Thompson starts awesome-elm-pltd, a list of useful resources for programming language theory & development in Elm.
7ᵗʰ - Simon Lydell publishes What I’ve learned about minifying Elm code.
6ᵗʰ - Jeroen Engels publishes the post Easier automatic fixes in elm-review.
10ᵗʰ - Luca Mugnaini publishes the post Elm at Rakuten.
12ᵗʰ - Maximilian Hoffmann publishes the post Making browser games more secure with Elm.
16ᵗʰ - The Elm Radio episode #036, elm-pages 2.0, talks about elm-pages v2 that has been just released.
16ᵗʰ - The Elm Radio episode #037, Performance in Elm, talks about performance tuning Elm applications.
16ᵗʰ - Dillon Kearns releases The Hydration Problem.
20ᵗʰ - Michael Glass, Stöffel, and Jasper Woudenberg (NoRedInk) publish the post Haskell for the Elm Enthusiast.
21ˢᵗ - Dillon Kearns announces Elm-markdown 7.0.0 with nested list parsing.
23ʳᵈ - Tereza Sokol announces the new look of the Elm online editor.
24ᵗʰ - Paipo talks at the WebHack meetup #47 about Transplant an Elm in your garden.
26ᵗʰ - Andrey Koppel talks at the Elm Online Meetup about Implementing lambda calculus in Elm.
26ᵗʰ - Jim Carlson talks at the Elm Online Meetup about Fault-tolerant parsing and the L1 markup language.
30ᵗʰ - The Elm Radio episode #038, Lamdera, talks about Lamdera with the author Mario Rogic. Lamdera is a service that lets you build full-stack Elm apps with zero glue code.
31ˢᵗ - Brian Hicks publishes the post tree-grepper.
3ʳᵈ - Tom Wells releases the first video of the series Pure FP Sessions - Intro to ELM.
3ʳᵈ - James Carlson announces Booklib, an app to keep track of the books you are reading (Elm + Lamdera).
3ʳᵈ - Lucas Payr releases Leaf - A scripting language for Elm.
6ᵗʰ - Kolja Lampe releases a browser UI for tree-sitter-elm.
7ᵗʰ - Jesse Warden releases the video JSON Decoding in Elm.
10ᵗʰ - Richard Feldman talks at Houston FPUG: Millions of Users, Purely Functional Code.
13ᵗʰ - The Elm Radio episode #039, elm-charts, has Tereza joining the episode to talk about building charts in Elm using the new elm-charts package.
13ᵗʰ - Flavio Corpa talk at the podcast Café con Tech - Into the Functional World with Flavio Corpa.
13ᵗʰ - Nick Walton initiates a conversation about Domain Driven Type Narrowing.
15ᵗʰ - Andy Thompson talks at Elm Online Meetup about If it's broke, fix it: programming language development in Elm.
15ᵗʰ - Joël Quenneville talks at Elm Online Meetup about Inverting a binary tree with 1 line of Elm.
15ᵗʰ - Erkal Selman publishes the post Making browser games more secure with Elm, Part Two.
16ᵗʰ - Axel Tetzlaff adds a video to the series Elm Tetris.
17ᵗʰ - Sam Roberts publishes the post The Whitney Music Box, in Elm.
21ˢᵗ - Vincent Jousse publishes the post Using Parcel JS with Tailwind CSS, Elm Lang and Elm Spa.
25ᵗʰ - Richard Feldman talks about A Taste of Roc.
27ᵗʰ - The Elm Radio episode #040, Phantom Builder Pattern, has Jeroen introducing the phantom builder pattern and how it enables new guarantees in Elm API design.
27ᵗʰ - Jeroen Engels publishes the post There, fixed the docs for you.
27ᵗʰ - Pascal Le Merrer announces the book Elm par la pratique (French).
29ᵗʰ - Brian Carroll publishes the post Progress about porting Elm to WebAssembly.
7ᵗʰ - Loïc Knuchel and Tereza Sokol release a video about the SQL parser for the Azimutt database schema explorer.
11ᵗʰ - The Elm Radio episode #041, elm-markdown, discusses the elm-markdown's approach to extensibility, the markdown specification, and some advanced uses.
11ᵗʰ - Joël Quenneville publishes the post Fewer Operations on Custom Types is Valuable.
11ᵗʰ - Xossbow showcases agog.ninja, a board game written in Elm.
12ᵗʰ - Joël Quenneville publishes the post Models That Match Reality.
13ᵗʰ - Vladimir Logachev talks about Elm in a series of videos by IT Chat (Russian).
13ᵗʰ - Luca Mugnaini publishes the post From dynamic to static typing in three steps.
13ᵗʰ - Matt "Verge" Virgin publishes a three parts post Using Fission with Elm.
14ᵗʰ - Joël Quenneville publishes the post A Broader Take on Parsing.
15ᵗʰ - Michael Rätzel introduces Elm Editor - a web-based IDE for Elm programs.
15ᵗʰ - Loïc Knuchel and Antoine Dauguet release a video about the SQL parser in Elm with Antoine Dauguet - part 2.
17ᵗʰ - Jesse Warden releases the video Happiness in the Front-End Using Elm.
19ᵗʰ - Tereza Sokol announces that the official Elm online playground supports installing custom dependencies.
20ᵗʰ - Flavio Corpa publishes the post Migrating from create-elm-app to Parcel 2.0.
20ᵗʰ - Michael Rätzel publishes the post Design Report - Migrations in Elm Fullstack Deployments.
21ˢᵗ - Nicolas Perriault publishes the post Elm Result Pipeline.
25ᵗʰ - Angus Findlay publishes the post A Quick Intro to Elm for React Developers.
25ᵗʰ - Dillon Kearns publishes the post Opaque Types Let You Think Locally.
25ᵗʰ - The Elm Radio episode #042, Comparing TypeScript and Elm's Type Systems, talks about the different type systems of TypeScript and Elm and their different goals. It dives into the different features and the philosophy behind their different designs.
25ᵗʰ - Jason publishes the post Lessons learned from my first 10k LOC in Elm.
26ᵗʰ - Elm Online Meetup - Video Color accessibility with elm-hsluv by Austin.
26ᵗʰ - Elm Online Meetup - Video The phantom builder pattern by Jeroen Engels.
2ⁿᵈ - The Technical Mindfulness blog discusses parsing and displaying emojis.
3ʳᵈ - Evan Czaplicki gives a status update about the exploratory compiler work.
7ᵗʰ - Aaron VonderHaar announces the release of elm-program-test 3.6.0
8ᵗʰ - The Elm Radio episode #43, Teaching Elm with Richard Feldman, has Richard Feldman sharing some tips on how to introduce people to new Elm concepts.
11ᵗʰ - Martin talks at the Stockholm Elm meetup about Audio, Elm style!.
12ᵗʰ - Dillon Kearns announces ellie-app, a tool to run Elm ellie-app examples locally.
15ᵗʰ - Jeroen Engels publishes the post Stop the bleed.
15ᵗʰ - Jordane Grenat releases the first video in the series Discovering Supabase, a Firebase alternative based on PostgreSQL.
18ᵗʰ - Richard Feldman talks about the book "Elm in Action" at GOTO Book Club Highlights.
18ᵗʰ - Luca Mugnaini talks at the WebHack meetup #49 about 3 years of Elm: lessons learned.
20ᵗʰ - Wolfgang Schuster adds support for Elm in Fig.
22ⁿᵈ - Robin Heggelund Hansen starts a series of posts about Successes, and failures, in optimizing Elm’s runtime performance.
22ⁿᵈ - Jordane Grenat releases the video [Code in the Unknown] Adding a "cancel" action to a chess game.
24ᵗʰ - Jonathan Reeve publishes the post Rapid Web Prototyping with Elm.
27ᵗʰ - The Elm Radio episode #44, elm-webgl, has Andrey Kuzmin walking through Elm's syntax for writing 3D shaders and using them in a type-safe way from Elm.
28ᵗʰ - Dillon Kearns publishes the post When It Compiles, But Doesn't Work.
28ᵗʰ - Luca Mugnaini publishes the post The Functional Donut.
29ᵗʰ - Alex Korban publishes the post An elm-review rule to generate JSON decoders and encoders from a JSON sample.
1ˢᵗ - Elm Online Meetup - Video Introduction to elm-charts by Tereza Sokol.
1ˢᵗ - Elm Online Meetup - Video Peeling zeroes in Idris by Ju Liu.
1ˢᵗ - Robin Heggelund Hansen publishes the post Improving the performance of record updates.
1ˢᵗ - Andy Thompson releases version 10.0.0 of Ren.
2ⁿᵈ - Ryan Haskell-Glatz starts a series of videos about solving Advent of Code 2021 puzzles in Elm.
3ʳᵈ - Matthieu Pizenberg releases Elm-test-rs v2.0, able to run Lamdera tests.
4ᵗʰ - A thread about how we heard about Elm for the first time and what convinced us to use it.
5ᵗʰ - James Carlson publishes the post Building Trees with Elm.
6ᵗʰ - The Elm Radio episode #045, How We Learn, looks at the techniques to learn Elm.
8ᵗʰ - Luca Mugnaini publishes Elm's guarantees.
13ᵗʰ - Robin Heggelund Hansen publishes the post Fixing a performance problem in Elm using Html.Lazy.
14ᵗʰ - Robin Heggelund Hansen publishes the post Increasing the performance of elm-css.
19ᵗʰ - Lindsay Wardell publishes the post Setting up an Elm project in 2022.
20ᵗʰ - Dillon Kearns publishes What Does "If It Compiles, It Works" Really Mean?
20ᵗʰ - Noah publishes the post Why Derw: an Elm-like language that compiles to TypeScript?
20ᵗʰ - The Elm Radio episode #046, 2021 Holiday Special!, is out.
23ᵗʰ - Sander Melnikov announces the new UI of Flux, built with Elm.
28ᵗʰ - Simon Hampton publishes the post Recursive event handler decoders.
28ᵗʰ - Luca Mugnaini publishes Elm 2021, a year in review (Header image).
This is all. See you in 2022!