I've studied the Elm architecture before starting on Karax, but my memories are rusty. I think if you use a clean Model+Update distinction and only use the update part in Karax's event handlers, you get the Elm architecture with Karax.
https://guide.elm-lang.org/architecture/
The Elm architecture is very simple to implement, maybe some nice fellow can write us a elm.nim example for Karax.
This is a basic example based on my understanding.
Pure functions generate a new state for the view after an event fires.
https://gist.github.com/honewatson/d60cf89804607dbeb652841b484441dc
I believe, the following example is even closer to the elm architecture (using the great patty lib): https://gist.github.com/stedi67/c242576b169ffd0d031a3858efe51dba
Disclaimer: I'm not sure, if the added boilerplate is really worth the effort (and I'm a nim newbie)