Compared to another compile to JS language ReasonML, I would say that its similar in compile time performance to ReasonML which is known to be fast. Personally I think it has better FFI than ReasonML. The base ReasonML language might be arguably more expressive than Nim though of course Nim has an extremely powerful Macro system which ReasonML does not.
What ReasonML compiles to is much more readable though Nim JS does have good stack trace.
The Nim type system is much more powerful than Typescript.
For web Nim can offer a true full stack experience with backend web services in the form of a statically compiled binary, devops tools created in Nim, and of course the JS frontend.
Nim JS is set up for monolith bundles for SPAs ( like webpack/rollup etc ) though in the future with HTTP2 and progressive web apps likely to become more and more popular the monolith bundle is not likely to remain popular as a distribution model. Instead you will have lots of libraries and components loaded on pages as needed.