[ANN] Monomer, a GUI library for Haskell

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/haskell

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • Scout APM - Less time debugging, more time building
  • OPS - Build and Run Open Source Unikernels
  • GitHub repo monomer

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

    I don't have any comments about the library itself, but I wanted to say that I very much appreciate that you took the time to write this out: https://github.com/fjvallarino/monomer/blob/main/docs/design-decisions.md

  • GitHub repo LambdaHack

    Haskell game engine library for roguelike dungeon crawlers; please offer feedback, e.g., after trying out the sample game with the web frontend at

    I've recently tried that and gave up (https://github.com/LambdaHack/LambdaHack/issues/248). Perhaps it's possible to statically link SDL2, but I learnt it's impossible to statically link the OpenGL and X11 libraries, so you end up with a partially statically linked binary (I didn't manage to obtain even that).

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • GitHub repo gi-gtk-declarative

    Declarative GTK+ programming in Haskell

    What are the main differences to and advantages over gi-gtk-declarative?

  • GitHub repo static-haskell-nix

    easily build most Haskell programs into fully static Linux executables

    In static-haskell-nix there is currently this PR to enable support for that: https://github.com/nh2/static-haskell-nix/pull/108

  • GitHub repo nanovg

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

    What is your take on the underlying library NanoVG stating

  • GitHub repo MetalNanoVG

    The Metal port of NanoVG.

    It's not ideal, but the feature set used by Monomer has been stable for quite a while. It's also a kind of small library, which makes porting it to other backends feasible (a version for Metal, which I have not tested, can be found here)

  • GitHub repo Skia

    Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

    I took a look at using Skia, but the C bindings are marked as not stable and it does not look like an easy to distribute library (plus compiling it takes a long time).

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • GitHub repo imgui

    Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

    The other option that looks really interesting is using ImGui's ImDrawList, but I haven't validated if something Monomer uses is missing. The main advantage is it supports quite a few backends (Vulkan included), plus it also is a small library.

  • GitHub repo egui

    egui: an easy-to-use immediate mode GUI in pure Rust

    Some competition from the rusties, with interesting discussion of immediate vs retained mode: https://github.com/emilk/egui

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts