I started playing around with CSS clipping paths and after I had a hexagon in my pen, the rest just fell into place. I centered the elements in their rows with flexbox and then used a negative bottom margin to line them up. The artwork for the tiles comes from Ryan Schenk (ryanschenk.com) and if you like them he has printable versions on his blog.
Originally I had them flush, but I like a little border to make them look like tiles. I have an image for ocean tiles but I might need to make everything smaller before I add another row all around the board.
A Pen by Anthony Skelton on CodePen.