By now I've made conway's game of life in python as a console application and with a pygame gui. I made those a long long time ago and there were tons of problems with the code I wrote: for example, I used a 1D array instead of a data structure that made more sense. I have no recollection of why I thought this was necessary, but I am pretty ashamed of that code.
So I welcomed the oportunity to make this again as a class project for my web development course. We were heavily incentivized to use functionals (I think they were trying to get us used to the async callback idiom that node uses), so this is why the code uses maybe a little too many functional idioms.
You can see the finished page here