I had a ZX81. Drawing was indeed done by writing directly to a special address space. However, you didn't write pixels directly but rather bytes which where rendered as characters on the screen by the system.
In fact, if you look at the source code in the actual article, you can see the graphical characters used to draw the board right in the Basic code listing. :)
The ZX81 did not have colors.