Options for a frontend of demo for a toy app

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

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • htmx

    </> htmx - high power tools for HTML

  • Another alternative is to use JavaScript or PureScript (Haskell-like language that compiles to JS) to build a separate frontend that communicates JSON or HTML (https://htmx.org) to/from your backend. Miso was already recommended to you which is a great project, but working with GHCJS is a nightmare from my personal experience.

  • binaryen

    Discontinued DEPRECATED in favor of ghc wasm backend, see https://www.tweag.io/blog/2022-11-22-wasm-backend-merged-in-ghc

  • ghcjs is the way to go for you, and soon it might be asterius. i do not know how hard it is to set ghcjs up without a framework. but frameworks like obelisk (based on reflex-dom), shpadoinkle, and miso automate that for. i personally like obelisk for its functional reactive programming but it can get awkward and get in your way. so if gui programming is just a means to the end of this one small application and you are not really interested in it nor functional reactive programming, shpadoinkle or miso might suit you better. miso implements the elm architecture (also "TEA", "functional model view controller") and shpadoinkle implements something directly equivalent to the elm architecture. but shpadoinkle achieves more composable widgets by minimalizing the elm architecture. so i recommend shpadoinkle for its better concept although miso is more mature.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • miso

    :ramen: A tasty Haskell front-end framework

  • ghcjs is the way to go for you, and soon it might be asterius. i do not know how hard it is to set ghcjs up without a framework. but frameworks like obelisk (based on reflex-dom), shpadoinkle, and miso automate that for. i personally like obelisk for its functional reactive programming but it can get awkward and get in your way. so if gui programming is just a means to the end of this one small application and you are not really interested in it nor functional reactive programming, shpadoinkle or miso might suit you better. miso implements the elm architecture (also "TEA", "functional model view controller") and shpadoinkle implements something directly equivalent to the elm architecture. but shpadoinkle achieves more composable widgets by minimalizing the elm architecture. so i recommend shpadoinkle for its better concept although miso is more mature.

  • scotty

    Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository)

  • Not that I'm much of an expert, but if you're talking about a very barebones static single-page-app, then you could very easily get by just using blaze-html to put your elements on the page, and then scotty is a basic web framework you could use to serve up your app.

  • imgui-ws

    Dear ImGui over WebSockets

  • We have Haskell bindings for dear-imgui - https://hackage.haskell.org/package/dear-imgui. dear-imgui is basically the same thing as egui. I mention this because dear-imgui also has an extension that streams an application over websockets - https://github.com/ggerganov/imgui-ws. If we had Haskell bindings to this, then you'd be able to do exactly what is on the egui.rs website.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
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