Case study2024

Members Club — internal gaming platform with points and a prize shop

An employee reward programme with a game at its centre

A bonus in a spreadsheet motivates nobody. We built the company's private club: employees earn points for results, play them against each other at Texas Hold'em or blackjack, then turn them into real prizes from an internal shop. All game logic runs on the server — because the points have genuine value.

StackReactTypeScriptNode.jsPrismaWebSocketsTailwind
TABLE · TEXAS HOLD'EMSERVER-SIDEAK107MAIN POT1,440SIDE POT960A. R.3,200M. P.480ALL-IND. L.5,140You2,760TO ACT · 20s
Client
Company with a sales team
Project type
Full web platform, built from scratch
Our role
Architecture, game engine, backend, interface
Status
Delivered
The context

There was nothing to buy off the shelf.

The client wanted a way to reward team performance that was more interesting than a bonus in a spreadsheet. The idea: employees earn points for results, then play them in a private club — poker or blackjack — and convert them into real prizes from an internal shop.

In other words, a motivation programme with a game at its centre, entirely private, open only to people inside the company. Off-the-shelf gaming platforms are public and play for real money; employee reward platforms are boring spreadsheets. It had to be built.

  • A bonus recorded in a spreadsheet motivates nobody
  • Existing gaming platforms are public and play for real money
  • Employee reward platforms are boring tables
  • The points would carry real value — so the system could not be cheatable
They wanted a closed club of their own: a real game between colleagues, real prizes at the end, and no way to cheat.
What we built

A complete platform, in three zones.

The game floor, the prize shop and the admin panel — all tied to the same internal currency. Points earned through results get played, lost, won back, and finally turned into physical objects.

Points earned
Poker · Blackjack
Real prizes

One currency runs through the whole system: from results into the game, from the game into the shop, from the shop into a physical prize delivered.

What we delivered

Real-time multiplayer Texas Hold'em

The hard part. Users enter a lobby, pick a table, take a seat and buy in with their points. The table starts on its own once there are enough players, the hand plays out in real time — everyone sees the same cards and the same bets at the same moment — and the next hand begins automatically. Anyone who doesn't act within 20 seconds is auto-folded, so the table never stalls.

Blackjack, by casino rules

The classic game against the dealer: dealer stands on 17, blackjack pays 3:2, double and surrender available.

The prize shop

Points convert into real physical prizes. The employee orders from the catalogue, the points are debited, stock goes down, and the order sits as “pending” until an administrator marks it delivered.

The admin panel

The admin generates access codes, adjusts points, manages the catalogue, approves or cancels orders (cancelling automatically refunds the points and restores stock), creates poker tables with custom stakes — and sees an audit log of every administrative action.

The critical point

No game is ever decided in the browser.

All game logic runs on the server. The cards, the shuffle, the winning hands, the way the pot is split — all computed server-side. The browser only displays.

Even if someone tampered with the page code, they can't influence the outcome, can't see their opponents' cards, and can't change their own points. In a system where points turn into real prizes, that isn't a technical detail — it's the very condition of the system being fair.

The browser only displays

Cards, shuffle, winning hands, pot splitting — all computed on the server. The client decides nothing.

Opponents' cards never reach you

They aren't “hidden” in the interface — they're simply never sent to your browser until they should be.

Points can't be edited from outside

The balance belongs to the server. No amount of poking at the page will change it.

Details that make the difference

This is what separates it from something that merely looks like poker.

01

Invite-only access, no passwords

An internal club with real prizes can't have public sign-up — but you also don't want to manage emails and forgotten passwords for the whole company.

Details that make the difference

The admin generates a unique code per person (ABCD-1234), and that code is the key — permanently. No emails, no passwords, no accounts created from outside. A closed club, literally.

02

The shuffle is cryptographically random

The ordinary “random” function in a programming language is predictable. In a game played for points with real value, that's an open door.

Details that make the difference

The six decks — as in a casino — are shuffled with a cryptographic random number generator. Nobody can anticipate the order of the cards.

03

Side pots, computed correctly

When a player goes all-in with fewer chips than the others, the pot has to be split into several separate pots. This is the case amateur implementations always get wrong.

Details that make the difference

The poker engine computes side pots correctly. That's exactly the detail separating a real poker game from one that merely looks like poker.

04

Transactions that lose nothing

If debiting the points and decrementing stock are two separate operations, you get the case where the points vanish but the order never lands — or two people order the last item at once.

Details that make the difference

Both happen as a single indivisible operation. Either both go through or neither does. There is no in-between state where someone loses points for nothing.

The outcome

The company has a club of its own.

Employees earn their points through results, play them against each other in a private space, and turn them into real prizes.

All of it on a platform built so it can't be cheated — because the points carry genuine value, and a game you can cheat at doesn't motivate anyone. It does the opposite.

0
Game logic executed in the browser
6
Decks, shuffled with cryptographic randomness
20s
To act at the table, then an automatic fold
3
Zones: game floor, prize shop, administration

Got a product idea that doesn't exist to buy?

Those are our favourites. We build from scratch — including the part where the system has to hold up against the people trying to cheat it.