We took inspiration from typing-based games; namely, something like ztype. In addition to that, we explored the concept of a multiplayer typing game, with more advanced strategies involved such as blocking and cutting off your opponent.

What it does

The project contains two components, a backend, and a frontend.


Built with React, it provides the player with the interface to the game: the graphics, sounds, controls, and some of the game logic.


Built with Python, it hosts a server that accepts Socket.IO connections, maintains open game rooms, and coordinates packets between players.

How we built it

In the backend, we used Python. We mainly used React.JS for the frontend and communicated between the frontend and backend with Socket.IO. We used Sanic to run the Socket.IO server.

The service is hosted on Google Cloud.

Challenges we ran into

At the beginning of the project, we had a bit of trouble deciding on our idea, taking us more than 3 hours. Additionally, we also had issues bringing up the Socket.IO server as we did not have much experience with the library.

Accomplishments that we're proud of

  • Building a frontend UI that was both responsive and aesthetically pleasing
  • Designing sound effects for the game that made the game feel more complete
  • A speedy backend service for coordinating games between players

What we learned

  • How to design interesting sound effects
  • How to host a Socket.IO server in Python

What's next for LetterGrid

  • Refine game graphics with animations
  • More advanced backend which maintains game state
  • Cheat prevention
  • Different types of maps


Share this project: