Next.js - React - Socket.IO - MongoDB

Developed a competitive typing platform with over 15 real-time game modes using Socket.IO. Lifetime 50 registered users and 150+ matches played.

Developed a competitive typing platform with over 15 real-time game modes using Socket.IO. Lifetime 50 registered users and 150+ matches played.

User Experience

  • Users can type and simultaneously flex their cosmetics while 1v1'ing each other

  • Guest play for users, defaulting to basic competitive rating; not saved in leaderboards

  • Store customized user themes in local storage

  • Buy cosmetics via in-game currency

  • Friend system and inviting Friends to 1v1

  • Party/lobby system for select game modes

  • Rapid word scoring via Datamuse API for word lookup

Queue System

  • Utilized MongoDB for an accurate queue system, preferring closely ranked users when available.

  • Defaults to a simple opponent bot in some game modes if no opponent found within a certain duration

  • Categorizes matches based on type

LLM Typing Practice

A multi-agentic story for people who want to practice typing while reading flash fiction!

User Experience

  • Users can type and simultaneously flex their cosmetics while 1v1'ing each other

  • Guest play for users, defaulting to basic competitive rating; not saved in leaderboards

  • Store customized user themes in local storage

  • Buy cosmetics via in-game currency

  • Friend system and inviting Friends to 1v1

  • Party/lobby system for select game modes

  • Rapid word scoring via Datamuse API for word lookup

Queue System

  • Utilized MongoDB for an accurate queue system, preferring closely ranked users when available.

  • Defaults to a simple opponent bot in some game modes if no opponent found within a certain duration

  • Categorizes matches based on type

LLM Typing Practice

A multi-agentic story for people who want to practice typing while reading flash fiction!

4 Agents each sequentially controlling their own aspect:
  • Narrative (handling overall story architecture)

  • Level (creating typing challenges)

  • Content (writing individual scenes)

  • Reward (generating savable awards)

Practices

  • Atomic operations

  • Rate limiting

  • Real-time

Challenges Faced

  1. From Polling to Socket.IO

Initially used polling-based multiplayer but faced constraints due to large HTTP header overhead

Real-time wasn't necessary but became needed as structure grew (and game mode variation)

Became more efficient and cheaper to use Socket.IO for matches, which actually expanded gameplay possibilities

  1. Product Design

Initially designed from my perspective on what I wanted to play, but following the advice of 30+ playtesters so far, I removed unnecessary bloat, added more customization, and social features.

Hosted in a Dockerized container in Digital Ocean.