All projects

Stackd

A play-money card room in your browser toolbar. Blackjack, Hold'em and roulette with friends.

Type
Chrome extension
Status
In use
Year
2026
Links
A Stackd poker table in Chrome's side panel, next to a web page

Stackd puts a card room in the Chrome toolbar. Click the chips and a popup opens with blackjack against the dealer, Texas Hold’em against bots, and European roulette. Open the side panel and the same room becomes multiplayer: create a table, share its six-character code, and play with friends while you browse. Monthly seasons, leaderboards, friends, groups, achievements and cosmetics sit around the tables.

It is play money only. Every player starts with 10,000 chips and tops up with free hourly and daily bonuses. Chips cannot be bought, sold, gifted or cashed out, and that rule is what keeps the extension allowed on the Chrome Web Store.

The server deals

The extension is a thin client. All shuffling, dealing, spinning and payouts happen in a Cloudflare Worker, and hidden cards (the dealer’s hole card, other players’ hands, the deck) are never sent to a browser that should not see them. Each player has a Durable Object for solo games, and each multiplayer table has its own, so every action on a table runs one at a time. Chip balances live in D1, and every debit is a guarded update written together with a ledger row, so a balance can never go negative or drift.

The game engines are pure TypeScript packages with no Cloudflare or browser code, tested with a seeded random generator: every blackjack payout path, a 7-card hand evaluator checked against known hands, and side pots with three and four all-ins at different sizes.

Bots that fit a budget

Empty seats fill with bots at three levels. Easy calls too much, Normal plays position ranges and pot odds, and Hard runs a Monte Carlo equity estimate on every decision. All of it runs on the Workers free plan, so the Hard bot’s simulation count was set from CPU times measured on the live deploy, not on a laptop.

A table in a side panel

A side panel is about 320 pixels wide and the extension cannot change that. The tables are CSS size containers that scale seats, cards and chips to the room they actually get, and an automated layout test checks laptop-sized panels for overlapping text and scrolling at every stage of a hand.