Damka.uz
Online Russian checkers: web, mobile app, bot and AI opponent

- Client
- Idrok Group
- Year
- 2024–2026
- Stack
- Rustactix-webWebSocketReactNext.jsPostgreSQLRedis
Damka.uz is our own product: online Russian checkers with ratings, an AI opponent and a Telegram bot for playing in group chats. The project has gone through three generations of architecture, and the game engine now runs on Rust.
Challenge
Checkers is popular in Uzbekistan: there's a national federation, and Tashkent hosts international-level tournaments. We wanted a platform where you find an opponent in seconds, play by Russian checkers rules and watch your rating climb.
There was a second reason too: testing on our own product the technology we later offer clients.
What we built
Version one in 2024 ran on Django + Nuxt. Version two (2026) moved to WebSockets via Django Channels and Nuxt 4, and added an AI opponent using negamax with alpha-beta pruning, ELO ratings, matchmaking and spectator mode.
For the current version we rewrote the server in Rust (actix-web). The engine validates moves and scores positions with a neural network evaluator, and all client traffic goes over WebSocket. The frontend is React, the admin is Next.js.
Then there's @DamkaUzBot. Add it to a group chat, and members can play each other and run tournaments under IDF rules without leaving Telegram.
In 2024 we released an Android mobile app with AI games, online matches with friends, tournaments and a leaderboard.
Outcome
- 01Three architecture generations: Django → Django Channels → Rust
- 02AI opponent, ELO ratings, matchmaking, spectator mode
- 03Telegram bot for games and tournaments in group chats
- 04Mobile app on Google Play
- 05In active development since 2024






Read next

How we taught a neural network to play checkers for Damka.uz
How we built a Russian checkers engine for Damka.uz: from Python minimax to a neural network in Rust, with WebSockets, ELO and three rewrites in two years.

Nuxt, Next.js, Rust: why we change our stack, and when not to
Why we moved from Nuxt 3 to Next.js, why the Damka engine was rewritten in Rust, why Shajara runs on Fastify, and why client websites get a boring stack.

Similar projects
All workGot a task? Message us — let’s talk.
Write on Telegram directly to the studio’s founder. Describe what you need in a couple of lines — we’ll reply with questions and a rough estimate.









