Subject of investigation
Geleg is a browser-based trivia platform built around live rooms, synchronized rounds, shared timers, scoring, and persistent game data.
STATUS
LIVE
PRODUCT
Multiplayer Trivia
HOSTING
Self-Hosted VPS
PLATFORM
Coolify
PRIMARY DB
MySQL
CACHE
Redis
Opened 2026-01-12 · Closed 2026-08-15
Case file opened — January 12, 2026
Real-Time Web Platform
Building a multiplayer game where every player needs to see the same game.
GELEG · LIVE PRODUCT · 2026
FIG. 01 OF 07
Section 02
PROBLEM DEFINED. DELIVERY CONSTRAINTS RECORDED.
The core problem was simple to describe: several players need to participate in the same game without drifting out of sync.
Players join a room, move through the same question rounds, answer under a shared timer, and receive the resulting scores.
That makes real-time state the central engineering problem. The server needs to know what phase the room is in, which players are connected, when a round starts and ends, and what the final result should be.
The resulting architecture separates live room state from conventional application data: Colyseus handles the real-time game loop inside the NestJS application, while MySQL stores persistent records and Redis supports fast transient backend operations.
Intake form
- PRODUCT
- Real-time multiplayer trivia
- PRIMARY CONSTRAINT
- Shared game state
- DELIVERY
- Live production deployment
- RUNTIME
- Self-managed VPS
Directive
“Build and operate a multiplayer trivia platform with synchronized gameplay, persistent records, and a production-ready deployment.”
Section 03
PRODUCT EXHIBITS INDEXED.
Visual evidence from the project
Section 04
RECONSTRUCTED ARCHITECTURE — REV. B
System architecture of the Geleg platform
Open fullscreen to interact with the system diagram.
Section 05
STACK AND RESPONSIBILITIES IDENTIFIED.
The technical stack behind the platform
- T-01
Next.js
Builds the player-facing web application and application shell.
App Router · TypeScript
- T-02
NestJS
Provides the backend API structure, modules, services, and application logic.
Node.js · TypeScript
- T-03
Colyseus
Maintains live room state and synchronizes connected players.
WebSocket-based room server
- T-04
MySQL
Stores persistent application and game-related records.
Relational database
- T-05
Redis
Provides fast in-memory storage for transient backend data and supporting application operations.
In-memory data store
- T-06
TypeORM
Provides the backend data-access and entity mapping layer.
ORM · migrations
- T-07
Docker
Packages services into repeatable production containers.
Multi-service deployment
- T-08
Coolify
Manages production deployments and application services on the VPS.
Self-hosted deployment platform
- T-09
TypeScript
Provides the typed development baseline across the application.
Client + server
Order: layer of concern — from interface to persistence.
File 06
ENGINEERING TRADE-OFFS RECORDED.
Major technical challenges and how they were resolved
Evidence board — drag the cards, drag the cork to pan
Case file
Geleg
4 obstacles · closed
- Challenge CH-01: Multiple players share one round, so client-side state can drift out of sync.. Decision: Made the Colyseus room authoritative — clients just react to it.. Result: Every player sees the same game state..
- Challenge CH-02: Real-time gameplay traffic doesn't behave like normal API requests.. Decision: Split HTTP and the persistent room connection into separate layers, both inside NestJS.. Result: Game loop and API stay independent..
- Challenge CH-03: Live state, temporary data, and permanent data don't belong in the same place.. Decision: Colyseus holds room state, Redis handles transient data, MySQL handles persistence.. Result: Each type of data lives where it fits..
- Challenge CH-04: Running your own infra means deployment is part of the engineering work.. Decision: Containerized the services and deployed through Coolify on the VPS.. Result: Production stays simple and under your control..
Section 08
CASE REMAINS LIVE.
Final report on the Geleg case
LIVE · OPERATIONAL
Filed 2026-08-15
by the case engineer
Realtime
Authoritative room state gives connected players a shared game state.
Architecture
HTTP API responsibilities and real-time gameplay responsibilities are separated while remaining within the NestJS backend.
Data
Colyseus manages live room state, Redis supports transient backend operations, and MySQL provides durable persistence.
Deployment
The application runs as separate containerized frontend and backend services on a self-hosted VPS, with Coolify handling deployment and service management.
GELEG · LIVE PRODUCT · CAPTURED 2026-08-15
The system is live. The next iteration is already part of the file.
End of investigation
End of file — document CF-014
Real-time products, full-stack systems, and production delivery.
Next case file — CF-018
B2U
Student Freelance Platform · Status: Filed
“A student-focused freelance platform connecting learning, paid opportunities, and tuition-aware earnings.”

