We are very happy to announce a first version of cljs browser support: https://twitter.com/lambdaforge/status/1341564453792456706
If I may have a suggestion: I believe it is a good practice to avoid core async in public apis if possible, it provides fewer place to shoot on our feet.
It's controversial, but I guess the fact datomic client api embraces core.async is a counter argument. Personally I don't mind, quite the opposite, especially when you need xplatform support.
@neo2551 Hey, thanks for providing feedback. Have you had problems with core.async? It is very easy to treat the returned channels as promises with callbacks, if you need to, but there is no way not to be async for us in JavaScript.
Note also that we already provide a restricted version of core.async with error handling such that we can compile it away on the JVM and only use it for ClojureScript. We basically treat it as a way to do synchronous function calls in an underlying asynchronous language similar to async/await in JavaScript. The semantics of our runtime is still propagating immutable values on the returned channels, we do not introduce concurrency and mutable state through the channels.