IMO, there is no need to think too much on the file organization, you will find how to organize them when the code size grow. One little trick I found useful is to add a --path to nim.cfg and create a common.nim that export frequently used packages. So that I can easily import packages with import common and less code to change when moving/renaming files.
File structure: - src - core - foo.nim - bar.nim - common.nim - nim.cfg Run nim.cfg: --path:"src/core" Run common.nim import foo, bar export foo, bar Run