I wrote a pretty long reply but then I accidentally refreshed the page and lost it all.
I'm pretty new to Nim, haven't yet used it much, but I do have experience in a couple other languages. Here's a list of things I appreciate from them: **Elixir** * Standardized website for documentation ([hexdocs](https://hexdocs.pm)), which is used for both [the language itself](https://hexdocs.pm/elixir), as well as all libraries, e.g. [Ecto](https://hexdocs.pm/ecto). * Clear structure, easy to use site, easy navigation. * Offline docs support (e.g. in the Elixir REPL iex: `h String.graphemes` to get formatted docs for that function). **D** * Well structured site * Runnable code samples in the browser. **PHP** * Typically really comprehensive docs. For example, most functions have details description of each parameter, example sections, errors that may be thrown, possible pitfalls, etc). The comments can be pretty useful sometimes, but can also be bad or filled with outdated knowledge. * Easy lookup of functions that you already know. E.g. <https://php.net/fopen>. I've lately also been looking at [the various types of documentation](https://documentation.divio.com/). > the left navigation bar is really god, and scrolls independently of the main > pane This bothered me while reading the Nim manual as well. I'll see if I can work on this, maybe make a PR. One thing I was missing in the Nim manual was dealing with `nil`. Where can I expect `nil` values (and must I check for them), which types are nullable by default, can I annotate something as not null, what about `options`? Off topic: the message editor on this forum behaves quite oddly. When I expand the textarea and then lose tab focus, it jumps back to its previous size. Similarly, with an expanded textarea, when I click on "preview" the first click will resize back to default and only the second click previews correctly.