I’ve been developing the
Ballast MVI library, which has great support for Compose Web. You can play with examples directly in the docs site, and even connect those up to its Intellij plugin for time-travel debugging.
For Compose, I always recommend an MVI approach to state management over MVVM, so that your components don’t depend on a specific ViewModel implementation, but keep them as a general contract of state and callbacks