All projects

Game / Real-Time Application

Pokecat Hunt

A real-time location-based prototype game inspired by Pokémon Go but featuring cats. Built as a monorepo with React frontend, Express backend, and Go microservice.

  • React
  • TypeScript
  • Go
  • MongoDB
  • Socket.IO
  • Vite
Pokecat Hunt interface
Pokecat Hunt — location-based map with wild Pokecats to discover and catch.

Overview

A lightweight multiplayer-like prototype experimenting with real-time synchronization.

A lightweight multiplayer-like prototype experimenting with concurrency, real-time synchronization, and persistence. Players explore a map, discover wild Pokecats, and catch them before they disappear.

The project was designed to explore the challenges of real-time game state management in a web environment.

The problem

Real-time games need to handle concurrent actions and race conditions.

Real-time games need to handle concurrent player actions, race conditions, and state synchronization without duplicating caught Pokecats.

  • Multiple players attempting to catch the same Pokecat simultaneously creates race conditions.
  • State synchronization must be fast enough to feel responsive while remaining consistent.
  • Pokecats must disappear for all players once caught, requiring real-time broadcast.

Approach

Monorepo architecture with lock/queue mechanisms for concurrent catches.

Built a monorepo with separate backend (Express + Socket.IO), frontend (React + Leaflet), and data service (Go + MongoDB). Introduced lock/queue mechanisms to handle concurrent catches.

Each service was designed to handle a specific concern, allowing independent scaling and development.

Solution

Three-app architecture separating spawning, data, and rendering concerns.

Separated concerns across three apps. Backend handles spawning and real-time broadcasts. Go service provides Pokecat data via REST. Frontend renders the map and catches via React Leaflet.

Lock mechanisms ensure only one player can catch each Pokecat, with immediate broadcast to all connected clients.

Pokecat Hunt architecture diagram
Three-app monorepo architecture with real-time communication.

Implementation

Technical implementation.

The monorepo structure allowed each service to use the best tool for its specific responsibility while maintaining a unified development experience.

Frontend

React 19 + Vite + TypeScript + SCSS, React Leaflet for map rendering.

Backend

Express + Socket.IO for real-time communication and Pokecat spawning logic.

Data Service

Go + MongoDB for Pokecat data persistence and REST API.

Results

What changed.

The project successfully demonstrated real-time game mechanics with proper concurrency handling and a playable demo.

0duplicate catches due to race conditions
Real-timecatch broadcasts to all players
PersistentPokecat storage in MongoDB

Links

Let's work together

Have a problem worth solving?

Let's talk about your project, technical challenge, or next idea.

Get in touch