Looks like there are no bindings for Canvas in the DOM package?
I take it the DOM package was hand-written by someone?
That's not the approach that most languages take - usually the (Interface Definition Language, IDL) specifications are parsed and compiled into interface specifications for another given language, e.g. Nim.
The DOM API is a moving target - and if you're going to write a full-stack web-application with Nim, having a complete, reliable and (especially) up-to-date DOM API seems kind of important.
Are there any practical reasons why IDL can't/shouldn't be parsed and translated to Nim, rather than (as I assume they were) hand-writing them?