Back to Projects
Project Spotlight

memory-game

A real-time multiplayer memory card game built with full-stack TypeScript and WebSocket-powered live gameplay.

Challenge your mind, beat your score.

Memory Game Club is a competitive browser game where players race to flip and match card pairs in real time. Built as a full-stack TypeScript monorepo — Next.js frontend, Express + Socket.IO backend, Prisma on Postgres — and deployed on a self-hosted VPS with automated CI/CD.

What It Does

Real-Time Multiplayer

Compete with others live. Game state is synced over WebSockets via Socket.IO — every card flip, every match, every score update happens in real time.

Card Matching Gameplay

Classic memory card flip mechanics with smooth animations. Find all pairs before your opponent does. Simple rules, surprisingly addictive.

Global Leaderboard

Scores are persisted and ranked globally. See where you stand against all players and climb the leaderboard over time.

Personal Statistics

Game history and stats are tracked per player. Review your past matches, track improvement, and spot patterns in your play.

Low-Latency WebSocket Sync

Local game state is managed client-side and synced over WebSockets. Minimizes round trips while keeping all players in consistent state.

Self-Hosted Infrastructure

Dockerized backend running on a Linux VPS with automated CI/CD via GitHub Actions. Nginx handles TLS termination and reverse proxying.

Tech Stack

Next.jsFrontend
Node.jsBackend
Socket.IOWebSockets
TypeScriptLanguage
PrismaORM
PostgreSQLDatabase
RedisGame State
TurboMonorepo
DockerInfra
Tailwind CSSStyling

Play Now

Open the live game and challenge other players in real time.