Skip to case file
Front pageCase FileReal-Time Multiplayer

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.

E-000 · PRODUCT

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

ARCHIVE SHELF / CASE CF-0146 EXHIBITS ON FILE

Section 04

RECONSTRUCTED ARCHITECTURE — REV. B

System architecture of the Geleg platform

Diagram 02 — Data flow7 nodes · 8 links

Open fullscreen to interact with the system diagram.

Node — serviceLive traffic

Section 05

STACK AND RESPONSIBILITIES IDENTIFIED.

The technical stack behind the platform

  1. T-01

    Next.js

    Builds the player-facing web application and application shell.

  2. T-02

    NestJS

    Provides the backend API structure, modules, services, and application logic.

  3. T-03

    Colyseus

    Maintains live room state and synchronizes connected players.

  4. T-04

    MySQL

    Stores persistent application and game-related records.

  5. T-05

    Redis

    Provides fast in-memory storage for transient backend data and supporting application operations.

  6. T-06

    TypeORM

    Provides the backend data-access and entity mapping layer.

  7. T-07

    Docker

    Packages services into repeatable production containers.

  8. T-08

    Coolify

    Manages production deployments and application services on the VPS.

  9. T-09

    TypeScript

    Provides the typed development baseline across the application.

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

100%

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.

E-007 · LIVE

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.

Engineering decisions documented.Evidence comes from the product.Infrastructure details kept intentionally minimal.

Next case file — CF-018

B2U

Student Freelance Platform · Status: Filed

A student-focused freelance platform connecting learning, paid opportunities, and tuition-aware earnings.

Open case file