reflex VS gi-gtk-declarative

Compare reflex vs gi-gtk-declarative 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)


Declarative GTK+ programming in Haskell (by owickstrom)
Our great sponsors
  • InfluxDB - Access the most powerful time series database as a service
  • CodiumAI - TestGPT | Generating meaningful tests for busy devs
  • ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
  • SonarQube - Static code analysis for 29 languages.
reflex gi-gtk-declarative
15 5
1,032 282
0.8% -
4.9 0.0
6 days ago 10 months ago
Haskell Haskell
BSD 3-clause "New" or "Revised" License Mozilla Public License 2.0
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 gi-gtk-declarative. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-11-25.
  • 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.
    8 projects | | 25 Nov 2021
    There's also gi-gtk-declarative.
  • [ANN] Monomer, a GUI library for Haskell
    11 projects | | 9 Aug 2021
    What are the main differences to and advantages over gi-gtk-declarative?
  • Apply git patch to package listed in extra-deps in stack build
    2 projects | | 2 Jan 2021
    Indeed I don't have to publicize it, but sometimes I want to help others who are stuck when an upstream author is unresponsive. The question I asked yesterday was specifically in response to creating a workaround for gi-gtk-declarative @
    2 projects | | 2 Jan 2021
    Yeah, if you are interested enough to check out my PR at gi-gtk-declarative (, then you will see how much I bent over backwards to avoid laying the foundations for an ormolu/fourmolu-like situation. Although, given that the project appears to be the only maintained declarative gui library in Haskell, I think the single-point-of-failure needs to be addressed.

What are some alternatives?

When comparing reflex and gi-gtk-declarative you can also consider the following projects:

Elm - Compiler for Elm, a functional language for reliable webapps.

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

dunai - Classic FRP, Arrowized FRP, Reactive Programming, and Stream Programming, all via Monadic Stream Functions

purescript - A strongly-typed language that compiles to JavaScript

reflex-dom - Web applications without callbacks or side-effects. Reflex-DOM brings the power of functional reactive programming (FRP) to the web. Build HTML and other Document Object Model (DOM) data with a pure functional interface.


rhine - Haskell Functional Reactive Programming framework with type-level clocks

monomer - An easy to use, cross platform, GUI library for writing Haskell applications.

obelisk - Functional reactive web and mobile applications, with batteries included.

nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.


static-haskell-nix - easily build most Haskell programs into fully static Linux executables