clojurescript

roklenarcic 2025-09-13T14:00:44.467769Z

Does anyone have some list of popular React integration libraries? I know of Reagent, reframe and fulcro. Is reagent still popular and up to date? anyone using nonreact js frameworks like vue or something else?

borkdude 2025-09-13T14:48:07.553879Z

although reagent isn't the most hip library and some other alternatives like uix and helix that adopted more modern React features, I think reagent is still rocking and conceptually the easiest for people who know Clojure

borkdude 2025-09-13T14:48:36.462199Z

replicant also comes to mind which avoids React completely

roklenarcic 2025-09-13T15:09:38.014069Z

Thanks.

roklenarcic 2025-09-13T15:22:06.310759Z

I am kinda looking for something that would be close to how a modern typescript react is written in case I need to expand to doing Typescript frontends

borkdude 2025-09-13T15:23:00.507759Z

probably uix or helix would suit your needs best as they are designed for the modern features that you would be using in typescript as well

borkdude 2025-09-13T15:24:19.444639Z

cljdoc recently migrated from typescript to #squint: https://github.com/cljdoc/cljdoc/blob/6e790571a252aa16fb2983710b74658210373eb3/doc/cljdoc-developer-technical-guide.adoc#front-end-code perhaps @lee can tell you more about that experience

borkdude 2025-09-13T15:25:22.497089Z

in squint you don't need any library except react, since you can write JSX directly in squint

lread 2025-09-13T15:30:02.964769Z

Cljdoc used https://preactjs.com/, so I stuck with that. In TypeScript, cljdoc tended to use https://preactjs.com/guide/v10/components#class-components, but I found switching over to https://preactjs.com/guide/v10/components#functional-components a much better fit for squint (and probably cljs in general).

lread 2025-09-13T15:30:43.868649Z

Using Preact directly worked fine for cljdoc.

lread 2025-09-13T15:31:35.131049Z

But note that cljdoc's front end is pretty minimal. It is mostly a server-side app.

borkdude 2025-09-13T15:31:36.783259Z

ok - in case you need class components, you can use this in squint too: https://github.com/squint-cljs/squint/blob/main/doc/defclass.md

πŸ‘ 1
lread 2025-09-13T15:32:56.040739Z

Yeah, I noticed defclass and tried it, but found I much preferred functional components.

πŸ‘ 1
roklenarcic 2025-09-13T17:05:29.602479Z

By functional components do you mean hooks?

roklenarcic 2025-09-13T17:06:46.236269Z

Oh it’s a special preact thing

lread 2025-09-13T17:14:48.169839Z

Yeah, see links I provided above

borkdude 2025-09-13T15:04:52.345749Z

does rebel-readline also work with a node (terminal) REPL? I normally start one with:

clj -Sdeps '{:deps {org.clojure/clojurescript {:mvn/version "RELEASE"}}}' -M -m cljs.main -re node
but the readme of rebel readline only speaks about nashorn (which is no longer supported by the JVM?) cc @bhauman

borkdude 2025-09-13T15:15:01.897959Z

rlwrap is very broken for me at the moment

lread 2025-09-13T15:34:44.742989Z

Yeah, I notice that rlwrap is behaving crazily these days!