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.