reflex-dom: Functional Reactive Web Apps with Reflex

[ bsd3, frp, gui, html, javascript, library, reactive, reactivity, user-interface, user-interfaces, web ] [ Propose Tags ]

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.

Reflex-DOM is a Functional Reactive web framework based on the Reflex FRP engine:

The reflex-dom package is a small wrapper around the reflex-dom-core package. It pulls in the correct set of dependencies for each target platform (GHCJS, WebKitGTK, WASM, mobile, etc.). Libraries should depend on reflex-dom-core and executables will usually depend on reflex-dom. All of reflex-dom-core's modules are re-exported by reflex-dom.

For Hackage documentation, please see:

Versions [RSS] [faq] 0.1, 0.1.1, 0.2, 0.3, 0.4, 0.5,, 0.5.3,,,
Change log
Dependencies aeson (>=1.4 && <1.6), android-activity (==0.1.*), base (>=4.7 && <4.15), bytestring (==0.10.*), containers, data-default (==0.7.*), dependent-map, dependent-sum, ghc-prim, ghcjs-dom, jsaddle (>=0.9.6 && <0.10), jsaddle-webkit2gtk (>=0.9.6 && <0.10), jsaddle-wkwebview (>=0.9.6 && <0.10), lens, mtl, prim-uniq, random, reflex (==0.8.*), reflex-dom, reflex-dom-core (>= && <0.8), text (==1.2.*), time, transformers, vector [details]
License BSD-3-Clause
Author Ryan Trinkle
Revised Revision 1 made by abrar at 2022-01-04T03:54:39Z
Category FRP, Web, GUI, HTML, Javascript, Reactive, Reactivity, User Interfaces, User-interface
Source repo head: git clone
Uploaded by abrar at 2021-12-25T04:59:25Z
Distributions NixOS:
Executables krausest, benchmark, sortableList
Downloads 5954 total (42 in the last 30 days)
Rating 2.5 (votes: 6) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user [build log]
All reported builds failed as of 2021-12-25 [all 2 reports]


[Index] [Quick Jump]

  • Foreign
    • JavaScript
      • Foreign.JavaScript.Orphans
      • Foreign.JavaScript.TH
      • Foreign.JavaScript.Utils
  • Reflex
    • Reflex.Dom
      • Builder
        • Reflex.Dom.Builder.Class
          • Reflex.Dom.Builder.Class.Events
        • Reflex.Dom.Builder.Hydratable
        • Reflex.Dom.Builder.Immediate
        • Reflex.Dom.Builder.InputDisabled
        • Reflex.Dom.Builder.Static
      • Reflex.Dom.Class
      • Reflex.Dom.Core
      • Reflex.Dom.Internal
      • Reflex.Dom.Location
      • Reflex.Dom.Main
      • Modals
        • Reflex.Dom.Modals.Class
      • Reflex.Dom.Old
      • Reflex.Dom.Prerender
      • Reflex.Dom.Time
      • Reflex.Dom.WebSocket
        • Reflex.Dom.WebSocket.Query
      • Reflex.Dom.Widget
        • Reflex.Dom.Widget.Basic
        • Reflex.Dom.Widget.Input
        • Reflex.Dom.Widget.Lazy
        • Reflex.Dom.Widget.Resize
      • Reflex.Dom.Xhr
        • Reflex.Dom.Xhr.FormData

Manual Flags


Use jsaddle-warp server


Use the GHC plugin Reflex.Optimizer on some of the modules in the package. This is still experimental.


Build the library with -fexpose-all-unfoldings which can help client code specialize better


Build the executables in ./examples


Build for wasm32 architecture

Automatic Flags

Use WebKit2 version of WebKitGTK.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees