Poker Platform
Multi-table online poker with real-money-capable risk review, admin tooling, and webhook fan-out.
The problem
Most indie poker clients skip the parts that actually matter for a platform that could hold real money: reviewer audit trails, risk escalation, admin tooling, webhook fan-out for B2B integrations. We wanted the full stack — client, server, admin, and risk review — architected so a payments layer could plug in without re-writing the core.
How we built it
- 01Built the server as a typed Dart engine with 445 unit + integration tests covering hand flow, pot splits, and disconnect recovery.
- 02Designed a ReviewQueue with SqlReviewCaseStorage, a full audit log, a reviewer role gate, and five REST endpoints for human moderation.
- 03Shipped a Flutter admin screen (HttpRiskReviewRepository) plus a WS session-open auto-enqueue hook so every table session is reviewable.
- 04Added a RiskWebhookBridge emitting risk.case.enqueued and risk.case.decided events for downstream B2B fan-out.
Outcome
Phase 22 architecturally complete: 445 server tests, 149 network tests, 23 admin tests, all green. Postgres adapter is a ~20-line swap from the SQLite-backed development path. The only remaining work before real-money traffic is a payments integration and the Postgres executor itself.
Stack
Dart server for type-safe game logic. Flutter clients for desktop + mobile parity. Postgres-ready storage behind a SqlExecutor abstraction.
Next up
Provision Postgres, write the PostgresSqlExecutor adapter, then integrate the first payment provider.