ClojureScript Gets Async/Await – Finally, No More Callback Kabuki
ClojureScript now has native async/await – not another macro, but real syntactic sugar.

The ClojureScript community just got a long-awaited gift: native async/await support. Yes, you heard it right – now you can write asynchronous code that doesn't look like a cryptic incantation.
Before this, async in ClojureScript felt like assembling IKEA furniture without the manual: you had all the pieces (core.async, promises, futures), but you had to juggle macros and pray nothing fell apart. The new syntax promises to be as concise as Clojure itself, but without the extra magic.
Developers who dragged async/await from JavaScript land will feel right at home. Except instead of await and async, you get Clojure-flavored versions – but the essence is the same: less boilerplate, more readability. And no, it's not another hype train – this is genuinely useful for anyone writing ClojureScript for the browser or Node.js.
Of course, there will be skeptics saying, "But we have core.async!" Try explaining go-loop and channels to a newbie who just wants to fetch some data. With async/await, the entry barrier drops, and the code becomes understandable even for those who haven't eaten a byte of functional programming.
METABYTE studio's take: At METABYTE, we've long known that async is a pain point regardless of language. We're glad ClojureScript made a step towards developers – less time debugging callbacks, more time building cool products. And if your stack still suffers from async hell – we know how to fix it.
NEXT STEP
Liked the approach?
We apply the same principles to client projects: AI, automation, products that don't die after launch.