I've been developing a JavaScript game engine for a few months now using Nim. Why would I subject myself to this level of pain? Because it's cool!
Wrapping ThreeJS, DatGui, and a couple other libraries have been a breeze. Making my own logic, like for example an ECS architecture, has been a nightmare. I'm constantly getting ambiguous errors that are nearly impossible to debug like this:
Error: redefinition of 'helper`gensym64'; previous declaration here: C:\Users\leonl\.choosenim\toolchains\nim-2.0.0\lib\js\jsffi.nim(231, 12)
This stuff leads to workaround after workaround and let me tell you it hasn't been pleasant. Some of it could be mitigated in theory by wrapping more native javascript stuff, but that's what the . operator is for w/ JSFFI.
I'm still going to see this through though so I'm just bitching. If I had the time and motivation to learn how JSFFI and the js backend for nim worked internally I'd love to contribute and make the js development process for nim much more enjoyable. I've been using the js backend for like 3 years now- successfully made apps scripts for Google Sheets/Docs, a couple utility chrome extensions, and little web apps, but everything was relatively simple. Making a more complex project using this backend in my experience... isn't for the faint of heart.
<3