I suspect you are asking for some kind of great cross-platform GUI framework. Sadly, IMO, having a good universal cross-platform GUI is nearly impossible, for all language,s for multiple reasons.
One of the more basic reasons is handling the OS environment. Some environments, such as Windows or Linux are imperative in nature. Others, such as Android and HTML/JS are intrinsically reactive in nature. Converting from imperative to reactive is nearly impossible to do automatically. Converting reactive to imperative is...easier but makes for ugly unmatched code. Just in case someone does not believe me, try converting the following imperative script even by hand: echo "welcome to the hello program" echo "enter a name or the word 'exit':" var name = readLine(stdin) while (name != "exit"): echo "Hello, " & name echo "enter a name or the word 'exit':" name = readLine(stdin) echo "Thanks for playing" Run into Javascript, where the input comes from an `<input>` and the output goes to a `<div>` or `<pre>`. The goal is not get the browser window to "freeze" forever. Impossible? Not if you rethink it and write it differently. But you end up with a very different looking program that has to handle state. And converting "with a Macro" is a ... nightmarish task. (I sort of did it once, but it was filled with SO many restrictions.) So, instead, I'd recommend stating your project's goal to get a better answer. So, what is your goal? If writing a game, then there some cross-platform systems such as Godot which have limited Nim support. If writing a desktop app, are you wanting the "widgets" be truly universal or should they look native to each desktop environment? With more details, I'm happy to help out.