Hey everyone,
I’ve been building Asobi, a multiplayer game backend platform (think Nakama/PlayFab) built entirely on BEAM/OTP. It’s very early stage but wanted to share it.
Stack:
- Nova (web framework + WebSocket)
- Kura (database layer, PostgreSQL via pgo)
- Shigoto (background jobs)
- Nova Resilience (circuit breakers, health checks)
- Arizona (LiveView - used in the admin dashboard)
What it does:
Auth (including OAuth/OIDC + IAP verification), matchmaking, server-authoritative matches (gen_statem), leaderboards (ETS reads + PG persistence), virtual economy, social features, tournaments, cloud saves, presence tracking, clustering - the full
stack for multiplayer games.
Match servers are individual gen_statem processes, matchmaking is a gen_server with query-based tickets, player sessions are supervised gen_servers. The usual OTP patterns - letting the runtime do what it’s good at.
Client SDKs: Dart/Flutter (pub.dev), Godot 4.x, Defold, Unity. Plus a Flame engine bridge (flame_asobi).
Check it out at https://asobi.dev
Would love feedback from the community. Especially interested in thoughts on the architecture and anything I might be overlooking.