reflex VS Elm

Compare reflex vs Elm and see what are their differences.


Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse. (by reflex-frp)


Compiler for Elm, a functional language for reliable webapps. (by elm)
Our great sponsors
  • InfluxDB - Access the most powerful time series database as a service
  • ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
  • CodiumAI - TestGPT | Generating meaningful tests for busy devs
  • SonarLint - Clean code begins in your IDE with SonarLint
reflex Elm
15 176
1,032 7,184
0.8% 0.5%
4.9 0.0
6 days ago 29 days ago
Haskell Haskell
BSD 3-clause "New" or "Revised" License BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of reflex. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-06.
  • Interactive animations
    11 projects | | 6 May 2023
    FRP solutions sound very attractive. But reflex seems to be stuck on the outdated GHCJS, and I haven't been able to get it to build. The newer JS output in GHC doesn't yet have DOM support. And even if I used one of those, figuring out how to interact with a LaTeX renderer might be tricky.
  • The Quest for the Ultimate GUI Framework
    4 projects | | 22 Apr 2023
    I only have experience using Reflex, which I regard as the main contender for FRP UI libraries in the Haskell sphere. It's got a flashy website, but I think the documentation is a bit disorganized -- it took a long time for me to figure out how to get going with the library (you find some pieces of knowledge scattered here and there, if you look hard enough). My plan was to learn it well enough to onboard other people, but I don't think I could convince anyone who hasn't already decided that they're gonna make UIs in Haskell no matter the required effort.
  • Simple GHC stack for a novice
    6 projects | | 17 Oct 2022
    Once someone has spent a bunch of time with Haskell and sees the value, they will find Nix if it makes sense. Maybe they'll want to play with, or they'll discover they want a better way to package 3rd-party dependencies, or they start using NixOS and want to nix all the things, etc. etc. Or, maybe they'll never find a use for it, and that's okay.
  • Functional Reactive Programming
    9 projects | | 16 Aug 2022
  • Exploring ideas in Haskell
    3 projects | | 14 Jan 2022
    Now, I've been convinced to take another look at reflex. This quick reference seems very useful, most other resources seem to always discuss reflex-dom specifically. I'm not really interested in that.
  • Is Haskell capable of this?
    8 projects | | 25 Nov 2021
    Have a look at, or, they are an interesting and different way of working with UI in a non imperative way.
  • Why Do We Need Transpilation into JavaScript?
    6 projects | | 5 Apr 2021
    At present, here at Typeable we develop frontend in Haskell and use the web framework Reflex and the functional reactive programming (FRP). The source code in Haskell is transpiled into the JavaScript code using GHCJS.
  • Comparing Elm with Reflex
    5 projects | | 22 Mar 2021
    Reflex is the framework that allows creating reactive web applications in Haskell.
  • Discussion Thread
    5 projects | | 18 Mar 2021
    Also you’re the Haskell guy no? Found this while reading a Wikipedia article
  • Creating a Haskell Application Using Reflex. Part 1
    3 projects | | 15 Mar 2021
    Hi there! My name is Nikita. At Typeable, we develop frontend for some of our projects using the FRP approach, specifically, its Haskell implementation – reflex web-framework. The resources that offer guidelines for this framework are quite limited, so we decided to fill this gap more or less.


Posts with mentions or reviews of Elm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-23.
  • Why I Use Elm in 2023
    4 projects | | 23 May 2023
    Looking at the number of opened bugs and lack of releases, I wouldn't call it rock solid.

  • Statically typed language where I can print anything easily?
    2 projects | | 21 May 2023
    my favorite frontend lang is, you should try it out.
  • Current Issues with the Qt Project – From the Outside Looking In
    6 projects | | 21 Apr 2023
    > How would a user interface written in a functional language look?

    Maybe you're not aware of Elm?

    Elm is really functional, unlike the likes of React that are just partially, kind of functional.

    There's an attempt at bringing Elm to the desktop, the Roc language... here's an UI example written in Roc:

  • [ANN] Library for functional web applications in ocaml
    2 projects | | 19 Apr 2023
    If you want to write functional web applications running in the browser the library fmlib_browser might interest you. It allows web applications in the elm style using the much more powerful language ocaml.
  • Lexer in Haskell
    4 projects | | 15 Apr 2023
    Elm (parser source code)
  • Why and How We Retired Elm at Culture Amp
    7 projects | | 8 Apr 2023
    It's more than lack of publicity, stuff like this adds up. The project looks unmaintained, because it is unmaintained. I guess deliberately so.
  • Elm for React developers
    2 projects | | 22 Mar 2023
    When I was first learning Elm, it was helpful for me to see side-by-side examples alongside ones from the JavaScript frameworks I was already familiar with.
  • Why I decided to learn (and teach) Clojure
    5 projects | | 20 Mar 2023
    In parallel I decided to learn a functional-first programming language instead of trying to partially apply the functional paradigm in an object-oriented language. After doing a lot of research, I chose to learn Elm. The fact that it is a pure and immutable functional language caught my attention. Also, it is focused on webapps development and, until then, I hadn't found any solution for developing web pages that I liked.
  • Implementing MicroScheme in Elm
    2 projects | | 12 Mar 2023
    I'd like to report on a little weekend project, namely to implement an interpreter for a small subset of Scheme using Elm. Here is a screenshot of the command-line interface:
  • React is a fractal of bad design
    12 projects | | 7 Mar 2023
    One alternative is the Model-View-Update framework developed in the Elm language [1]. A few years ago, it influenced Redux [2], but JS doesn't have good ergonomics to support it, so people complained it was too verbose. Anyway, I brought Elm to the company I worked at two jobs ago, and it worked very well, since it is conceptually very simple. The experienced developers loved its explicitness, which made it possible to build a very intricate app from just a few dependencies, which in turn allowed the company to have a very fine-grained control of the UI, and the customers loved the result.

    On the other hand, other less experienced developers didn't like Elm so much because React allows you to write your app with fewer lines of code. The article from this discussion explains well that React (especially with hooks) hides complexity, which bites people later. At that time, it is perhaps too late to switch to something else.

    Needless to say, I haven't been able to convince any other employer to use Elm, and then I see issues popping out all the time that would never happen with it. Such a waste, just because people like shiny toys and just follow what others around them are doing without thinking too much.


What are some alternatives?

When comparing reflex and Elm you can also consider the following projects:

rescript-compiler - The compiler for ReScript.

haskelm - Haskell to Elm translation using Template Haskell. Contains both a library and executable.

purescript - A strongly-typed language that compiles to JavaScript

yew - Rust / Wasm framework for building client web apps

idris - A Dependently Typed Functional Programming Language

sodium - Sodium - Functional Reactive Programming (FRP) Library for multiple languages

haskell-names - Haskell suite library for name resolution

Vue.js - This is the repo for Vue 2. For Vue 3, go to

language-thrift - Haskell parser for the Thrift IDL format.

Cycle.js - A functional and reactive JavaScript framework for predictable code

Svelte - Cybernetically enhanced web apps

lens-toml-parser - Lenses for toml-parser