DEV Community

Cover image for Elm 2022, a year in review
lucamug
lucamug

Posted on • Updated on

Elm 2022, a year in review

2022 has been another exciting year for Elm, with many interesting packages, blog posts, videos, podcasts, demos, tutorials, applications, and so on.

Let's have a look at it in retrospect.

This is a list of relevant materials. 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.

At the bottom, you will also find some of the companies that hired Elm developers in 2022 and a partial list of companies that use Elm.

If you want to keep up with Elm's related news:

You can also check the previous Elm 2021, a year in review.

Here we go 🚀

January 2022

Elm Radio episode #47 - What's Working for Elm

Simple code is different from simplistic code: Elm vs JavaScript

  • January 10th - Announcement Advent of Code 2021 by Ryan Haskell-Glatz (A handful of videos teaching Elm through Advent of Code. With this blog post he recaps each of the 7 days he recorded.)

Advent of Code 2021

Introduction to Elm (with Lindsay Wardell) | Some Antics

  • January 12th - Video Functional Programming for Pragmatists - A presentation by Richard Feldman at GOTO Copenhagen 2021 (Do you care more about how well code works than how conceptually elegant it feels? Are you more interested in how effectively you can build and maintain software than how buzzword-compliant it is? Then this is the talk for you! People like functional programming for different reasons. Some like it for the conceptual elegance, or the mathematical properties. Richard? He likes to build things. He likes it when the software he builds works well and is easy to maintain. For the past decade he's been using functional programming both professionally and as a hobbyist, and has found it has helped him ship higher quality software in less time than in the decade he spent writing object-oriented code before.)

Functional Programming for Pragmatists

  • January 15th - Project Elm Search by Henrique Buss (For those using Mac's, now there is an Elm Search extension for Raycast. Helping you to more quickly find packages, functions, and more!)

Elm Search

Lambda Calculus: an Elm CLI

Elm Radio episode #48 - If It Compiles It Works

Elm Part 1 - Setup Elm and Write Your First Program

Rethinking Maybes for Elm beginners

  • January 23rd - Announcement McMaster Start Coding has taught over 22,222 kids! by McMaster Start Coding (Attention #Elm coders! Thanks to your participation, McMaster Start Coding has taught over 22,222 kids! To celebrate we are hosting a contest, and winners get free entry into a summer camp! We will select 2 winners every week, for 5 weeks straight!)

McMaster Start Coding has taught over 22,222 kids!

Wordle in Elm in 1h13m17s (PB, timelapse)

  • January 29th - Post Twitter thread about components by Duncan Malashock (In @elmlang, your UI elements don't need to be "components" the way they might be in React. So what should they be? Here are a number of common patterns for different requirements.)

Twitter thread about components

Elm vs HyperScript - A Wordle implementation

Elm Radio episode #49 - Optimizing Performance with Robin Hansen

February 2022

Implementing WORDLE in Elm in under 82 minutes!

Learning Elm while launching a project, good idea?

Differences between TypeScript and Elm

The Ideal Programming Language

Elm Radio episode #50 - Large Elm Codebases with Ju Liu

Software Unscripted: Interactive Style Guides

  • February 16th - Announcement IntelliJ Elm Plugin future by clojj (Clojj announced the renovation of the IntellyJ Elm Plugin and already had some success with elm-review integration, Lamdera project support)

  • February 17th - Post Utilizing Elm in a Web Worker by Lindsay Wardell

Utilizing Elm in a Web Worker

  • February 17th - Post GraphQL and Elm by Ryan Haskell-Glatz (Making inputs that don't bust your face.)

GraphQL and Elm

  • February 21st - Video Writing a MMORPG game in Elm on both client and server - A presentation by Martin Janiczek at NDC Oslo 2021 (For the better part of last year I've been writing a multiplayer browser game, with both frontend and backend written in the Elm language. I'll talk about my setup, the good, bad and ugly of this approach, anecdotes from development, what surprised me and what the future holds. Who said Elm's for frontend only‽)

Writing a MMORPG game in Elm on both client and server

Meteor with Elm starter kit

  • February 21st - Game Katakana Wordle by Flavio Corpa (Learn a new KATAKANA word EVERY day!)

Katakana Wordle

elm interreactor - Clickable compiler messages for the lazy

Minidenticons ported to Elm

React to Elm: Migrating React to Elm in Three Ways

Tail recursion, but modulo cons

Elm Radio episode #51 - Primitive Obsession

March 2022

elm-map

Elm Radio episode #52 - Category Theory in Elm with Joël Quenneville

  • March 15th - Announcement New elm-review package releases by Jeroen Engels

  • March 15th - Announcement New Elm-pair release adds support for Visual Studio Code by Jasper Woudenberg

  • March 16th - Tutorial Elm - The Complete Guide (a web development video tutorial) by Carlos Saltos (I've just created a new class for increasing more Elm adoption, please help to share it with your friends that want to learn new better ways to create nice web sites using Elm)

  • March 17th - Video Hobby scale: making web apps with minimal fuss - A presentation by Martin Stewart (Creating web apps requires setting up a lot of infrastructure. Configuring a database, managing hosting, writing deploy scripts, and handling communication between the client and server are only some of the many things that need to be done. Unfortunately for many projects, this level of control isn't needed and is instead a burden. It doesn't need to be this way though! In this presentation I'll give an overview of how you can use Elm programming language and the Lamdera framework to create web apps with little effort as well as show some of the apps I've created using it.)

Hobby scale: making web apps with minimal fuss

Elm at Talenteca

Trying your luck with Elm

My Little Functor

Familiarity or Guarantees? Functional Programming for the front-end

Elm Radio episode #53 - Dead Code

Code Azimutt feature with Elm: collapse columns

  • March 31st - Project Platformer physics system by Andrea Peltrin (I’ve done a proof-of-concept platformer physics system using pixel-perfect values in #Elm. This was hella fun!)

Platformer physics system

April 2022

  • April 2nd - Video Friday Hacks #221: Why bet the company on Elm for both front and backend? - A presentation by Choon Keat (Although Elm usually runs on the browser, this talk explains why it’s actually a great choice for building the backend too – and why it can be a perfect choice for a startup. We will walk through how it even works on the backend, and how wonderful life can be in such an environment!)

Friday Hacks #221: Why bet the company on Elm for both front and backend?

Easy dependency integration in Kotlin/JS using the "Elm ports" technique

Code Azimutt feature with Elm: table & column notes

Extending Railway Oriented Programming in Elm to Make Complex User Flows Simple - Grahame #FnConf 22

Elm Radio episode #54 - Developer Productivity

  • April 14th - Video Introduction to Elm-Lang - A presentation by Shalk Venter and Gary (A presentation organized by Front-end Development South Africa)

Introduction to Elm-Lang

Property based testing: primer and examples

Software Unscripted: Static Analysis with Jeroen Engels

Web Programming In Elm - Getting Started

Elm Radio episode #55 - Use the Platform

May 2022

Offline Elm CSV to JSON GUI application in one video (elm-ui)

Applications as Libraries: Building elm-book and elm-admin

Utilizing Native Dialog in Elm

Elm Radio episode #56 - elm-book with Georges Boris

  • May 11th - Video A janitor for Elm - A presentation by Rupert Smith at Elm Online Meetup

A janitor for Elm

Game programming and creative coding with Elm

Elm Programming Quick Start - For Beginners (Functional Programming)

Introduction to Elm programming language for React developers

Elm + Heroicons = Love

Software Unscripted: Software Design with Dillon Kearns

Celebrating 10 years of Elm

The store pattern in Elm

Elm Radio episode #57 - State of Elm 2022

  • May 30th - Project Gren 0.1.0 by Robin H. Hansen (Today I'm announcing the first release of Gren. An Elm-like language that intends to support both frontend and backend development.)

June 2022

  • June 1th - Announcement Release of Simple Iot v0.2.0 by Cliff Brake (Simple Iot is a platform that enables you to add remote sensor data, telemetry, configuration, and device management to your project or product.)

Release of Simple Iot v0.2.0

  • June 6th - Announcement A Monkey Interpreter by Dwayne Crooks (An Elm interpreter for Monkey, a programming language designed by Thorsten Ball.)

  • June 6th - Elm Radio episode #58 - Elm Store Pattern "Martin Janiczek joins us to discuss a pattern for declaratively managing loading state for API data across page changes."

Elm Radio episode #58 - Elm Store Pattern

Hobby scale: making web apps with minimal fuss

Functional and Object-Oriented Programming with Lindsay Wardell

Speak & Spell reproduction in Elm

Elm Radio episode #59 - Wrap Early, Unwrap Late

Graph Bang

Understanding UI Components in Elm

My first Functional Programming app

  • June 25th - Announcement A milestone for Elm Catalog by Alex Korban (Elm Catalog crossed the threshold of 1300 packages (not counting pre-release, internal etc)! Elm Catalog now lists 1307 Elm 0.19.x packages & 110 Elm tools across all categories.)

  • June 26th - Video Effect Systems for Mortals - A presentation by Eduardo Morango at Elm Meetup Brazil

Effect Systems for Mortals

  • June 26th - Video Declarative Server State - A presentation by Dillon Kearns at Elm Meetup Brazil (Elm Meetup Brazil welcomed Dillon Kearns as he demoed some of the upcoming features on elm-pages v3.)

Declarative Server State

A Chip-8 emulator

July 2022

The Essence of Functional Programming

Elm Radio episode #60 - Building Trustworthy Tools

Elm Radio episode #61 - Exploring a New Form API Design

  • July 20th - Video Build Elm Apps (with Lindsay Wardell) | Some Antics - A presentation by Ben Myers (Previously on Some Antics, we dove into the syntax for Elm, a functional programming language that compiles down to JavaScript, with friend of the show Lindsay Wardell — but we weren't able to get to application development in time. Join us as Lindsay returns to the stream for a sequel on building Elm apps!)

Build Elm Apps (with Lindsay Wardell) | Some Antics

  • July 26th - Project Travelm-Agency 3.0.0 by Andreas Molitor (A new major version of Travelm-Agency 52, an internationalization code generator for Elm.)

  • July 26th - Game Type Signature by Andy

Type Signature

Nethys Search, a search engine for Archives of Nethys

  • July 28th - Video Static analysis tools love pure FP - A presentation by Jeroen Engels at Lambda Days 2022 (Functional programming languages have many benefits that are often explained from the developer's point of view, such as how easy it is to maintain a codebase. But we rarely look at it from the point of view of tools. Static analysis tools try to infer meaning and intent in order to find bugs and code smells, but they can be very hard to write depending on the features of the analyzed language. We will look at how explicitness, the lack of side-effects and dynamic constructs in pure FP languages empower tools to trivially achieve surprising results that would be nearly impossible with other paradigms.)

Static analysis tools love pure FP

  • July 28th - Video Towards Smart E-Learning Mentor Dispatch - A presentation by Christopher Schankula at Lambda Days 2022 (The McMaster Start Coding program has taught over 26,000 K-12 students programming using Elm over the last five years. Collectively, they have compiled nearly 4 million programs in our online learning platform. The COVID-19 pandemic has necessitated the switch to a fully virtual setup, which continues as schools have strict visitor limits. Virtual learning also necessitates upgrades to the online code compilation and mentoring software we use. In particular, we need to determine when a student is stuck so as to be able to make better use of mentor resources and proactively help students who are struggling. This presentation details data mining efforts to predict metrics such as the length of time that a student is likely to struggle if they are receiving an error in their program, in order to dispatch mentors and help the students who need the most attention.)

Towards Smart E-Learning Mentor Dispatch

  • July 28th - Video Functional Parsing for Novel Markup Languages - A presentation by James Carlson at Lambda Days 2022 (With functional languages like Elm that target the browser, one can parse and render both classical and novel markup languages in real time, providing authors a pleasant, zero-config tool for writing and distributing mathematical text. The talk will outline how one designs and builds a fault-tolerant parser that provides high-quality, real-time error messages in-place in the rendered text. As case studies we consider two markup languages: MiniLaTeX, a subset of LaTeX, and L1, an experimental markup with a syntax inspired by Lisp.)

Functional Parsing for Novel Markup Languages

  • July 28th - Video An Enigma Machine in Elm - A presentation by Ju Liu at Lambda Days 2022 (The Enigma machine was an encryption device that was used by German forces during WW2 to send secret messages. In this talk, we will explain exactly how the encryption process works and go through an implementation of it in Elm. We will demonstrate how to encrypt and decrypt a message. Then we will go over the weaknesses that made it exploitable by Alan Turing and the other fine folks in Bletchley Park. By the end of the talk, you'll be able to point out all the inaccuracies in "The Imitation Game".)

An Enigma Machine in Elm

August 2022

Elm Radio episode #62 - elm-test v2 with Martin Janiczek

  • August 3rd - Project Airsequel by Adrian Sieber (First public beta release)

  • August 3rd - Post Day 1 of Elm by Eke Enyinnaya Diala

  • August 7th - Post GSoC 2022 @ Kodi: Mid-Term Evaluation by Mohd. Shaheer

  • August 10th - Project Chart by Trade Simplr (Interactive Trading platform to trade and analyze in the financial markets, built with Elm.)

Chart

  • August 10th - Announcement Elm in Parcel (Better support for Elm has been release in Parcel, including multiple entry points.)

  • August 12th - Video Introduction to Elm Part 1 - A presentation by Programming from A to Z

Introduction to Elm Part 1

Introduction to Elm - Building a Basic Web Application

Reweave

Elm Radio episode #63 - The Root Cause of False Positives

Showing a Playing Card From a Single Suite With Elm

Introduction to Elm

  • August 24th - Game Sudoku & experiments by David Klemenc (The games are a result of inspiration from Sebastian Lague videos.)

Sudoku & experiments

  • August 29th - Announcement Alpha release of ElmLand by Ryan Haskell-Glatz (Ryan Haskell-Glatz announced the release of the latest alpha release of @ElmLand_ with a brand new @vite_js powered website, a guide designed for JS folks new to @elmlang, a dark mode AND a cool glowing thingie)

Alpha release of ElmLand

Elm Radio episode #64 - Projects We Wish We Had Time For

September 2022

IU wins $300K NSF award to build an open-source ecosystem around heavily used cloud tool

Getting started with elm-watch

Elm Radio episode #65 - elm-watch with Simon Lydell

  • September 13th - Game Space Sim! by Wolfgang Schuster (Getting closer to a point with https://github.com/wolfadex/space-sim where it's actually playable, though still basically alpha. Right now it's basically just a simulation you watch.)

Space Sim!

Software Unscripted: Lamdera with Mario Rogic

scripta.io

CodeGen with Types, for Humans, by Humans

Diagrammar: Simply Make Interactive Diagrams

JUXT Cast S4E4 - Strange Loop Edition: A chat with Jared M. Smith

Elm Radio episode #66 - elm-codegen with Matthew Griffith

  • September 29th - Post Where JavaScript is headed in 2022 by Matthew Tyson (Which JavaScript frameworks, features, and tools do developers favor, and which are on the way out? Let’s look at the latest State of JavaScript survey results.)

October 2022

[elm] Building a Simple Calculator

Elm Radio episode #67 - Elm at a Billion Dollar Company with Aaron White

  • October 11th - Video Functional Programming in Vite with Elm - A presentation by Lindsay Wardell at ViteConf 2022 (Elm is a delightful language for building reliable web applications. In this talk, we'll explore what Elm is, how it compares to Javascript, and how we can incorporate it into a Vite-based application.)

Functional Programming in Vite with Elm

Yet another way to manage shared state in Elm SPAs

Elm 3D Pool Game Collaboration

  • October 24th - Elm Radio episode #68 - Elm and ADD "We discuss how Elm is a powerful tool for people with ADD, and how lessons learned from ADD can benefit people who don't have ADD."

Elm Radio episode #68 - Elm and ADD

Fullstack happiness using the regal stack

Stringy - The string transformer

What’s new in elm-watch 1.1.0

November 2022

Elm Radio episode #69 - Types vs. Tests

Designing for Programmer Delight

  • November 13th - Project Mammudeck by Bill St. Clair (I've been having a blast writing Elm again, after a two-year hiatus. I wrote billstclair/elm-dynamodb and am using it to make a DynamoDB.AppState module, so I can have global persistent state for #mammudeck)

  • November 14th - Project Announcing VendrInc/Elm-GQL! by Matthew Griffith (Matt Griffith is announcing vendrinc/elm-gql! A tool for generating Elm modules from GraphQL queries and mutations.)

  • November 15th - Project Help test the new npm elm package! by Simon Lydell (Me, @supermario and @evancz (with the help of some more folks) are working on a new version of the elm npm package.)

  • November 15th - Post Data Modeling Resources in Elm by Joël Quenneville (Some of the best Elm data modeling resources around the web.)

  • November 15th - Game Liikennematto released into early access! by Matias Klemola

Liikennematto released into early access!

  • November 16th - Game Drops by Gábor Kerekes (Drops is an implementation of Puyo Puyo by Dividat.)

Drops

Virtual DOM: What problem does it solve?

Elm, If it compiles it works!

Elm language for learning functional programming

Elm Radio episode #70 - elm-gql with Matthew Griffith

  • November 22nd - Post Contributing to devenv by Brian J. Cardiff

  • November 28th - Post Getting Tailwind to Work with Elm Book by Jesse Warden

  • November 30th - Announcement Elm-Widgets by Georges Boris (Elm-Widget, a collection of stateless widgets designed to make your experience building elm applications easier and even more delightful, was annunced at the Elm Remote Meetup)

Elm-Widgets

Thought experiment: Hiding implementation types in Elm

December 2022

  • December 1th - Video Day 1: Learn Elm with Advent of Code - A presentation by Ryan Haskell-Glatz (Advent of Code 2022, Day 1! This series is designed for anyone new to functional programming. We use a language called Elm to complete these puzzles together. All the solutions and links are available below!)

Day 1: Learn Elm with Advent of Code

  • December 1th - Project Fractale by Adrien Dulac (Fractale is part of the “productivity” or “asynchronous communication” tools family. As a developer, I am satisfied with the organization and collaboration tools built around Git, such as Github/Gitlab/Gitea. But for human beings who are not developers or strangers to these tools, they remain too complex and ill adapted...)

Fractale

  • December 2nd - Video Day 2: Learn Elm with Advent of Code - A presentation by Ryan Haskell-Glatz (Advent of Code 2022, Day 2! This series is designed for anyone new to functional programming. We use a language called Elm to complete these puzzles together. All the solutions and links are available below!)

Day 2: Learn Elm with Advent of Code

Day 4: Learn Elm with Advent of Code

  • December 4th - Video Day 3: Learn Elm with Advent of Code - A presentation by Ryan Haskell-Glatz (Advent of Code 2022, Day 3! This series is designed for anyone new to functional programming. We use a language called Elm to complete these puzzles together. All the solutions and links are available below!)

Day 3: Learn Elm with Advent of Code

  • December 5th - Video Day 5: Learn Elm with Advent of Code - A presentation by Ryan Haskell-Glatz (Advent of Code 2022, Day 5! This series is designed for anyone new to functional programming. We use a language called Elm to complete these puzzles together. All the solutions and links are available below!)

Day 5: Learn Elm with Advent of Code

Elm Radio episode #71 - Deliberate Practice

  • December 6th - Video Day 6: Learn Elm with Advent of Code - A presentation by Ryan Haskell-Glatz (Advent of Code 2022, Day 6! This series is designed for anyone new to functional programming. We use a language called Elm to complete these puzzles together. All the solutions and links are available below!)

Day 6: Learn Elm with Advent of Code

  • December 6th - Post Gaining insight into your codebase with elm-review by Jeroen Engels

  • December 7th - Video How to do Property based Testing Shrinkers Right - A presentation by Martin Janiczek at Haskell eXchange (Property-based testing (PBT) is a valuable tool in the functional programming world: it generates test inputs for you (finding tricky edge cases you wouldn't be able to find manually) and lets you specify and verify laws and invariants about your code with ease. Virtually all PBT tools nowadays shrink the failing inputs to a minimal (and thus much more helpful) counterexample before presenting it to you. Implementing shrinkers can be tricky, though. I'll walk through the common shrinking algorithms (seen in QuickCheck, Hedgehog, ScalaCheck, etc.), their inherent problems, and most importantly: how to implement shrinking in a way that doesn't suffer from them!)

How to do Property based Testing Shrinkers Right

Look Ma no graphics card! Software-based 3D rendering in Elm

  • December 8th - Video Day 8: Learn Elm with Advent of Code - A presentation by Ryan Haskell-Glatz (Advent of Code 2022, Day 8! This series is designed for anyone new to functional programming. We use a language called Elm to complete these puzzles together. All the solutions and links are available below!)

Day 8: Learn Elm with Advent of Code

  • December 8th - Project astro-integration-elm by Angus Findlay (I've created an Elm integration for Astrodotbuild, which lets you render Elm islands server-side!)

  • December 9th - Video Day 9: Learn Elm with Advent of Code - A presentation by Ryan Haskell-Glatz (Advent of Code 2022, Day 9! This series is designed for anyone new to functional programming. We use a language called Elm to complete these puzzles together. All the solutions and links are available below!)

Day 9: Learn Elm with Advent of Code

  • December 9th - Post Presenting Styleguide Colors by Tessa Kelly

  • December 11th - Video Day 10: Learn Elm with Advent of Code - A presentation by Ryan Haskell-Glatz (Advent of Code 2022, Day 10! This series is designed for anyone new to functional programming. We use a language called Elm to complete these puzzles together. All the solutions and links are available below!)

Day 10: Learn Elm with Advent of Code

Elm Radio episode #72 - 2022 Holiday Special

Hot reloading the Simple IoT UI

  • December 30th - Project Competition Tracking by Vladimir Kirienko (A web app for tracking gliding competitions using Haskell and Elm, with websockets!)

Competition Tracking

Some of the companies that hired Elm developers in 2022

For more job related news, susbscribe to the Elm Weekly newsletter or to the #jobs channel in the Elm Slack.

Partial list of companies that use Elm

AbletonAcimaACKOActiveStateAdrimaAJR InternationalAlmaAstrosatAvaAvettaAzaraBarmeniaBasiqBeautiful DestinationsBEC SystemsBekkBellroyBendyworksBernoulli FinanceBlue Fog TrainingBravoTranBrilliantBudapest SchoolBuildrCachixCalculoJuridicoCareRevCARFAXCariboucarwowCBANCCircuitHubCN Group CZCoinTrackingConcourse CIConsensysCornell TechCorvusCrowdstrikeCulture AmpDay OneDeepgramdiesdas.digitalDividatDriebitDripEmirateseSparkEXRFeaturespaceField 33FissionFlintFolqFordForsikringFoxhound SystemsFuturiceFörsäkringsGirotGenerativeGenesysGeoraGizraGWIHAMBSHatchHearkenhello RSEHubTranIBMIdeinIlluminateImprobableInnovation through understandingInsurelloiwantmynamejambitJobviteKOVnetKulkulLogisticallyLukoMetronome Growth SystemsMicrosoftMidwayUSAMimoMind GymMindGymNext DLPNLXNomalabNomiNoRedInkNovabenchNZ HeraldPermutivePhrasePINATAPinMeToPivotal TrackerPowerReviewsPractlePrimaRakutenRoompactSAVRScovilleScriveScrivitoSerenyticsSmallbrooksSnapviewSoPostSplinkSpotttStaxStowgaStructionSiteStudyplus For SchoolSymbalooTalendTallink & Silja LineTest DoublethoughtbotTravel PerkTruQuTWaveTylerUncoverUnisonVeevaVendrVerityVnatorVyW&W Interaction SolutionsWatermarkWebbhusetWejoininZaloraZEIT.IOZettle

This list is extracted from several sources, such as elm-companies, Stackshare.io, blog posts, videos, talks, atc.


This is all. See you in 2024!

❤️

Latest comments (5)

Collapse
 
thrashabaddon profile image
Daniel

WOW, this is great resource for finding everything in one place. Thanks for writing this up. Do you maybe have plans for doing the year 2023?

Collapse
 
frontmesh profile image
Vladimir Vujosevic

Don't have much to add other than a nice informative post and kudos for keeping these track records about Elm. It is great to see that Elm is still going strong.

Collapse
 
afyvs1 profile image
Info Comment hidden by post author - thread only accessible via permalink
Vivina Sardo

Have you guys tried adadot.com/ yet? I think it might be a fun experiment for 2023, let's see what you think hehe!

Collapse
 
mirkoperillo profile image
mirko

Wow, what accurate recap. Thank you for this hard work

Collapse
 
csaltos profile image
Carlos Saltos

Great !! ... Thank you for sharing dear Luca !! 👍😎

Some comments have been hidden by the post's author - find out more