signaali

2025-10-31T16:55:22.015789Z

@kloud has joined the channel

2025-10-31T20:46:45.126879Z

Just watched the si-frame introduction. It is really cool how the whole stack comes together - signaali + si-frame + vrac for rendering. 👏 Being a Solid.js fan it excites me to have a viable signal-based UI framework for cljs.

2025-11-03T07:01:21.664489Z

Good morning @kloud, and welcome to the channel. Yeah, it surprised me too when every libraries clicked together 🙂

💯 1
2025-10-31T20:47:15.123319Z

Did you try to run the js framework benchmark? Is there a performance gain using current fine-grained rendering implementation vs. Reagent/Uix?

2025-11-03T08:22:59.269519Z

Fine-grained reactivity does not automatically mean good performance. Solid does some clever things in a way how it compiles its JSX templates to achieve the performance. In opposite example Vue 3 is also based on fine-grained reactivity, but uses VDOM for rendering, so it leaves performance on the table.

2025-11-03T08:23:27.023529Z

> Vrac and Signaali don't have optimizations on purpose, because the development may still make the implementation evolve. I want to avoid premature optimizations. Makes total sense 👍

2025-11-03T08:26:15.608519Z

The original idea which pushed me to write Vrac is the DSL, and it's not fully implemented yet.

2025-11-03T08:27:29.101669Z

Having it done will have a bigger impact than improving the performances (which nobody really needs at this point)

2025-11-03T08:35:57.061819Z

Besides simpler mental model regarding derived data the performance is another big selling point for signal-based implementations. I did implement the framework benchmark in the past. I am just curious 🙂 If I find time I might try to implement it, will post to #vrac if I get to it.

2025-11-03T09:02:09.590439Z

That would be quite nice to have. Let me know if you get stuck, I will gladly help.

2025-11-03T09:11:02.464369Z

Currently the fragment implementation is not efficient, dynamic collection's updates make the parent dom node replace (detach + reattach) all its children (but we keep most of the children each time). I have a plan to improve this in an efficient way later, but it's not a priority.

2025-11-03T07:04:50.478239Z

I didn't run any benchmark against anything React-based lib, it would take me some time and I don't think it is necessary. Solid JS probably has done that already and has shown that the fine grained approach is unsurprisingly faster. Vrac and Signaali don't have optimizations on purpose, because the development may still make the implementation evolve. I want to avoid premature optimizations.

2025-10-31T20:47:47.940979Z

Can Signaali/Vrac run as cljc on JVM? I expect having non-js based implementation should make Server Side Rendering viable for faster initial load times then switch over to client side rendering for interactivity.

2025-11-03T08:27:31.084989Z

very cool, looking forward to it

2025-11-03T07:10:35.289259Z

Signaali already runs on CLJC. The unit tests run on both Browser and JVM. At the moment, Vrac runs on CLJS only. Server side rendering is not in the priority list, but I have plans to make an example app where the state is managed in the server via web socket communication.

2025-11-03T07:11:48.015259Z

By the way, because Signaali and Vrac are separate projects, there is a #vrac channel which is more appropriate to discuss the later.