Table Online

Table Online — real-time multiplayer backgammon on iOS, Android and web

Dart for the game (Flutter + Flame Engine), the admin panel (Flutter Web) and the Serverpod backend, plus a Go microservice that owns the real-time match traffic. Three platforms — iOS, Android and web — from one Flutter codebase.

Download on the App StoreGet it on Google Play
Table Online — Multiplayer, Tournament and Practice in the main interface

What you find in Table Online

Real-time multiplayer over WebSockets

Moves are validated server-side and pushed instantly to your opponent by our Go realtime service — one goroutine per match room. No desync, no client-side cheating possible.

Matchmaking and rankings

Quickly pairs you with an opponent of similar skill. ELO rating updated after every match, global leaderboard visible in app.

Play instantly in the browser

Hit table-online.ro and you are in a match within 30 seconds. No mandatory downloads, optional account sync between web and mobile.

Same experience on iOS and Android

Push notifications when it is your turn, matches resumed exactly where you left off, IAP for users who want more. One codebase, two app stores.

Smooth 60fps animations

Dice, piece movements, transitions — all rendered by Flame on top of the Flutter engine. No hybrid framework, no WebView.

Official backgammon rules

Strict implementation of classic rules: bar, doubling, hitting, bearing off. Server-side validation, so consistent across all platforms.

Tech Stack

Under the hood — Dart + Go

The same team writes the game, the admin panel and both backend services. Dart everywhere, plus Go exactly where raw real-time throughput matters.

🎮 Game

Flutter + Flame Engine

Game loop, sprites, collisions, drag&drop support for pieces. Flutter overlays for chat, menus and HUD — without leaving the framework.

🌐 Web (players)

Flutter Web

Browser version of the same app. Almost 100% code shared with mobile, hot reload on all platforms simultaneously.

📊 Admin panel

Flutter Web

User moderation, match statistics, real-time monitoring. UI components shared with the game app — update once, updated everywhere.

🔧 Backend

Dart + Serverpod

Auth, users, friends, tournaments, chat, in-app purchases and admin. Type-safe API and ORM over PostgreSQL — models defined once and used identically on client and server.

⚡ Real-time games

Go microservice

Owns the hot path of every match: WebSocket connections, one goroutine per game room, move validation. Runs next to Serverpod and shares the same PostgreSQL and Redis.

💾 Data

PostgreSQL + Redis

PostgreSQL for profiles, match history and rankings. Redis for sessions, matchmaking queue and real-time state of active matches.

Why Table Online is living proof Flutter is more than mobile

This app is an engineering argument, not just a game. It proves Flutter + Dart can cover a real product — game, backend, admin — with a small team, and that adding Go only where it pays off keeps real-time fast. If you wonder whether Flutter web is viable for products, or whether Dart is "real" on the backend, play a round and answer yourself. Everything you touch on table-online.ro and in the apps was written by us.

Download on the App StoreGet it on Google Play
Discuss your project