The Elm programming language is “a delightful language for reliable web applications.” It would be used as an alternative to React, Vue, Svelte, Angular, and other web application frameworks. Elm is an opinionated, niche language and framework that is not for everyone, but those who use it often find it a defining experience that forever changes how they approach building applications.
Status
When talking about Elm in 2025, the elephant in the room is the status of the project. The most recent release of Elm is version 0.19.1, which was released in October 2019. It’s highly unusual for software projects to go multiple years without a release. The community-run resource Elmcraft has a robust article detailing the status and common questions. The summary of that article states:
Elm core dev (Evan) works differently, with tradeoffs some people dislike. Those conversations repeat. Core is considered stable, there are no critical bugs or blockers. Rare critical issues get attention. Elm core design won’t change for a while. Evan is in a long cycle working on an Elm-DB exploration. The Elm community is very active.
In our experience, it has helped to reframe perspectives to see that Elm is stable. Our projects which are built using JavaScript feel fragile and require constant updates to packages in order to continue building and operating successfully, as well as in order to combat myriad potential security issues. In contrast, we can come back to an Elm project that hasn’t been touched in years and everything just works (aside from tracking down some packages from renamed GitHub repositories). The core is simple, stable, solid, and secure, which enables us to focus on what really matters.
While the core Elm language has been stable for a number of years, that doesn’t mean that there’s nothing new in Elm. There are a number of community-led initiatives which are worth being aware of, following, and considering.
Elmcraft
As mentioned above, Elmcraft is a great central hub of resources to review. There are links to videos, podcasts, newsletters, packages, tools, and guides, as well as community forums, meetups, and conferences. Finally, the lore section is great for getting up to speed on the history of discussions within the community.
elm-review

elm-review is the ESLint of the Elm world. However, since Elm has many more constraints than JavaScript, elm-review is able to be much more powerful and reliable than JavaScript linters. Additionally, elm-review tries to simplify the process of writing custom rules, so that each codebase can ensure consistency in any way that the developers determine to be important.
Lamdera

Lamdera is a full-stack Elm web platform, meaning that it provides a way to write Elm for the backend logic of the app, in addition to the typical use case of Elm for the frontend. It does this by providing a proprietary runtime which supports passing messages between the frontend and backend in a way that eliminates the “glue code” typically needed around communicating between tiers of an application.
In addition, the Lamdera compiler is an open source, backwards/forwards compatible un-fork of the Elm compiler. In addition to enabling the compilation of programs for the Lamdera platform, it can be used for any Elm program. This allows the usage of some additional optimizations and experiments from the folks at Lamdera, providing a proving grounds for those enhancements to potentially be added back into the official Elm compiler.
elm-pages
elm-pages is a site generator which uses Elm to provide some interesting and useful guarantees. It uses a similar architecture to Astro, allowing compiling fully static HTML sites, or full-stack sites (there’s a built-in Netlify adapter, and community adapters for a number of other hosting options). It uses file-based routing and specializes in using data sources that are type checked while building out the content of the site. This is a great option for public sites where the SEO impact of running a dynamically rendered site is a concern.
elm-pages Scripts is a feature which allows writing small utility scripts (such as would often be written in bash or PowerShell) in Elm. This is usable in projects which do not otherwise use elm-pages, so it’s interesting to consider getting Elm’s guarantees in an environment that is traditionally relatively error-prone.
Elm Land

Elm Land is an Elm framework which emphasizes being friendly to newcomers, especially developers familiar with JavaScript frameworks like React. It has extensive documentation and guides (some of which are helpful for all Elm developers, whether using Elm Land or not). File-based routing makes it simple to add new URLs to a site. Elm Land is great for sites behind a login where SEO is less of a concern.
And Many More…
- Gren is a programming language which started as a fork of Elm, but has continued to evolve and is now capable of running in the terminal and on a server, in addition to in the browser.
- Zokka is an alternative Elm compiler which supports private repositories.
- elm-janitor is a collection of patches to Elm core packages.
- elm-program-test is a library which makes it simple to test whole programs in memory.
- elm-watch is a robust watch mode for
elm make
.
- intellij-elm is the Elm plugin for IntelliJ IDEs (e.g. IDEA, WebStorm, etc.) which includes extensive refactoring and navigation tools.
- Elm Weekly is a weekly newsletter of resources to explore.
Next Steps
If you’re looking for help with an Elm project, Engage offers both Elm Consulting and Elm Software Development. Our expert team has been deploying and supporting Elm in production since 2016. We can review your project and highlight opportunities for improvement, or help get through roadblocks in understanding, development, or deployment. Let Engage be your trusted partner to deliver results that matter.