← Back to projects

The Typing Quest

Featured
websocketsNode

Tech stack

Node.js, Javascript, websockets

About

A real-time multiplayer typing race built with Node.js and WebSockets. Players join rooms via a shared code, and a persistent two way connection keeps everyone's progress in sync as they type, each keystroke triggers a server broadcast so all clients update simultaneously. The server runs a state machine across each room (lobby → countdown → racing → guess phase → results), supporting multiple concurrent gam es. The frontend is vanilla JS with no framework: typing sounds are generated procedurally using the Web Audio API, and the video background is driven by the YouTube IFrame API.

Running locally

npm install
node server.js

Then open http://localhost:3000

In my web dev module, we touched upon websockets - descibing their use case and how they work but not applying it. I found the idea interesting and wanted to create something fun using websockets.