Once (and only once) you've satisfied the core requirements, here are some additional goals that you can shoot for:
- If allowing players to compete from separate devices, display a "Waiting..." message while users are waiting to be matched.
- Keep track of multiple game rounds with a win counter.
- Allow players to customize their tokens (X, O, name, picture, etc).
- Get inventive with your styling, e.g. use hover effects or animations to spiff things up.
- Add tableside chat to your game.
- Use localStorage to persist data locally, allowing games to continue after page refresh or loss of internet connectivity.