Agree, this is amazing because you can share code and data structures between front and backend (for example: https://github.com/karaxnim/karax).
Also, it's really nice having high level stuff like metaprogramming and static typing spanning both targets. Things like reading a spec file and generating statically checked APIs for server/client is straightforward, which opens up a lot of possibilities.
The official tutorials[3] are pretty good, when you get the grab on how to ”decode” them. For web development with websockets and microservices I would suggest you to have a look at the Redis package[4], and @treeform’s Websocket[5] and JsonParsing-packet[6].
[0] https://github.com/nim-lang/nimforum/ [1] https://github.com/karaxnim/karax [2] https://github.com/dom96/jester/blob/master/tests/alltest.ni... [3] https://nim-lang.org/docs/tut1.html [4] https://github.com/nim-lang/redis [5] https://github.com/treeform/ws [6] https://github.com/treeform/jsony
* Shell scripting, I still assume most people will just use Bash tho: https://github.com/Vindaar/shell
* Frontend: https://github.com/karaxnim/karax or you could bind to an existing JS library.
* Backend: For something Flask-like: https://github.com/dom96/jester or something with more defaults https://github.com/planety/prologue
* Scientific computing: the wonderful SciNim https://github.com/SciNim
* Blockchain: Status has some of the biggest Nim codebases currently in production https://github.com/status-im?q=&type=&language=nim&sort=
* Gamedev: Also used in production: https://github.com/pragmagic/godot-nim and due to easy C and C++ interop, you get access to a lot of gamedev libraries!
* Embedded: this is a domain I know very little about but for example https://github.com/elcritch/nesper or https://github.com/PMunch/badger for fun Nim+embedded stuff!
Most of the disadvantages come from tooling and lack of $$$ support.