It's not nearly as polished but I had a lot of fun making it. It uses React and the now-no-longer-maintained https://boardgame.io/.