Not my “full-2020-stack” but I just deployed the port of https://tqtezos.github.io/TZComet/ from Tyxml_js/React/ReactiveData to Tyxml-lwd from @let-def
- cf. https://github.com/let-def/lwd — OCaml 2020 had a talk about Nottui/Lwd
- it’s a client-side-only JSOO app, but it can talk to public Tezos nodes, so technically the “backend” is Cohttp/Lwt-based likely behind nginx-like proxies.
Pretty happy with Tyxml_lwd
:
- I initially hit a couple of bugs, that @let-def fixed very fast (I think I was the first bigger user).
- It is overall not that different from the
Tyxml_js
combo, but the API is simpler and feels way cleaner:- there is no “reactiveData” awkward middle-person (or let’s say its equivalent is better integrated in the Lwd case)
- there are less (no?) traps with
React.S.value
throwing exceptions or==
equality being used in subtle ways - There is no
Tyxml_js.Html
VsTyxml_js.Html.R
distinction, which makes it easier to build nicer UI abstractions on top of HTML. - Bonus points for
let empty () = Lwd.pure Lwd_seq.empty
and
let ( % ) a b = Lwd.map2 ~f:Lwd_seq.concat a b
allowing me to have an efficient and very practical “HTML monoid” interface.