This is cool! Is there a chess board library that you used or did you have to built it from scratch?

I built the board from scratch but used the awesome chess.js library by Jeff Hlywa for move validation.