A high-performance, mathematically audited, and cryptographically secure slot machine game built using NestJS, React, PostgreSQL, and Redis. Engineered with solid back-end architecture, strict state-machine controls, and a fully transparent Provably Fair verification pipeline.
- Complete State Machine: Robust server-side game loop handling transitions across BASE_GAME, FS_INITIALIZER, and FREE_SPINS.
- Mathematically Audited RTP: Calibrated base game and free spins strips verified via a 50,000,000 Monte Carlo simulation run, converging at a highly precise ~96.51% RTP.
- Provably Fair Pipeline: Fully transparent system utilizing HMAC-SHA512. Players can inspect committed server seed hashes, edit client seeds, and rotate seed pairs to reveal previous plain-text server seeds for independent validation.
- Bonus Buy & Balance Refill: Native support for on-demand bonus buys at 250x bet, along with custom demo balance replenishments.
- High-Performance WebSockets: Real-time communication via Socket.io, optimized for deployment on low-latency, resource-constrained environments like Raspberry Pi 5.
- Immersive Mobile & Desktop UI: Column-first rendering of art-deco assets with staggered reel stops, motion blur, and elastic landing settle effects.
- Backend: Node.js, NestJS, TypeScript, Socket.io
- Database & Caching: PostgreSQL, Prisma ORM, Redis (pessimistic locking and state cache)
- Frontend: Vite, React, TypeScript, Tailwind CSS, Lucide Icons
- Deployment: Docker Compose, systemd, Cloudflare Tunnels (cloudflared)
-
Set up your environment variables by copying the template file: cp .env.example .env
-
Spin up the isolated database and caching containers: docker compose up -d
-
Build and launch the NestJS backend and the Vite frontend: ./start.sh
Yehor Rodionov | Middle Backend Developer | mrmegahb@gmail.com