Full-stack online poker platform in TypeScript. Server-authoritative game engine, 7 poker variants, complete tournament system, and a 35-page admin panel. 8,400+ tests passing.
No feature flags, no upsells. Every feature listed below is included in a single licensed platform you self-host and control.
All game logic runs server-side. Clients send actions; the server validates everything. Zero client-side manipulation possible. Mutex-protected action processing prevents race conditions.
TableActionManager.tsFisher-Yates shuffle with Node.js crypto.randomInt() — the same cryptographic standard used by licensed online poker rooms. Not Math.random(). Provably fair.
DeckService.tsTexas Hold'em, Omaha PLO, Omaha Hi-Lo, Short Deck (6+), 7-Card Stud, Stud Hi-Lo, and Mixed Games (H.O.R.S.E. / 8-Game). All betting limits supported.
GameVariant.enum.tsMTT, Sit & Go, Satellites. Auto table balancing, final table formation, rebuy/re-entry, guaranteed prize pools, up to 50 payout positions. Scale-tested to 200 players.
TournamentService.tsTight/Loose, Passive/Aggressive, Random, Heads-Up. Context-aware decision making with pot odds, position awareness, and human-like timing variance across 5 complexity levels.
BotStrategy.tsJWT dual-token rotation, TOTP 2FA mandatory for admins, AES-256-GCM encryption at rest, CSRF double-submit, multi-layer rate limiting, 7-tier RBAC with 50+ permissions.
AuthMiddleware.tsStripe, Coinpayments (crypto), Bank Transfer, Manual — 4 payment providers. 9 currencies including BTC and ETH. KYC 4-tier, AML, sanctions screening, fraud detection.
PaymentGateway.tsReal-time dashboard, user management, financial analytics, rake reporting, compliance tools, email campaigns, affiliate/agent systems, CMS, language management.
AdminRouter.tsxSingle Socket.IO connection app-wide. Guaranteed delivery pipeline with client ACK and retry. Sequence tracking, 5-min reconnection window, Redis adapter for horizontal scaling.
SocketService.ts// 10-state finite state machine // Invalid transitions throw errors enum GameState { WAITING = 'WAITING', STARTING = 'STARTING', PREFLOP = 'PREFLOP', FLOP = 'FLOP', TURN = 'TURN', RIVER = 'RIVER', SHOWDOWN = 'SHOWDOWN', COMPLETE = 'COMPLETE', PAUSED = 'PAUSED', CLOSED = 'CLOSED', } // Cryptographic shuffle const i = crypto.randomInt(0, j + 1); [deck[i], deck[j]] = [deck[j], deck[i]];
The engine is built around a central Table class (~1,943 lines) with validated 10-state FSM transitions. Every hand follows the same deterministic path — impossible game states throw errors, not bugs.
A 35-page back-office management system organized into 8 navigation groups. Role-based access control, feature-gated visibility, and mobile-responsive design throughout.
// Feature toggle example const features = { cashier: true, tournaments: true, privateGames: true, bots: true, affiliates: true, realMoney: true, virtualChips: true, chat: true, kyc: true, aml: true, // 21 total toggles... } // Revenue analytics RakeAnalytics: { totalRake: "$12,847", avgPerHand: "$0.42", topTables: [...], }
Serializable transaction isolation prevents double-registration race conditions. Automatic table balancing, hand-aware safety (never moves players from active hands), and final table formation are all built in.
Fixed start time, auto table creation, balancing
Auto-start, template/instance arch, auto-replenish
Win tickets to bigger tournaments, full lifecycle
50 payout positions, guaranteed pools, custom %
Annual license. Self-hosted on your server. No revenue share, ever.
Join operators who chose a production-grade platform over vaporware. Self-hosted. No revenue share. No excuses.
Have questions about our poker script? We reply fast.
Chat Now