whatisgithub

What is nakama?

heroiclabs/nakama — explained in plain English

Analysis updated 2026-06-24

12,597GoAudience · developerComplexity · 4/5Setup · moderate

In one sentence

An open-source backend server for multiplayer games and social apps that provides user accounts, friend lists, real-time chat, leaderboards, and matchmaking out of the box.

Mindmap

mindmap
  root((nakama))
    Features
      User accounts
      Real-time chat
      Matchmaking
      Leaderboards
    Custom Logic
      Lua scripts
      TypeScript code
      Native Go plugins
    Setup
      Docker compose
      PostgreSQL required
      Cloud deployment docs
    Audience
      Game studios
      Mobile developers
      Indie developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Deploy a ready-made multiplayer backend for a mobile game without building account, chat, or matchmaking systems from scratch.

USE CASE 2

Add real-time leaderboards and seasonal tournaments to an existing game.

USE CASE 3

Write custom game server logic in Lua or TypeScript that runs server-side inside Nakama.

USE CASE 4

Validate in-app purchases and send push notifications from a single self-hosted backend.

What is it built with?

GoPostgreSQLCockroachDBDockerLuaTypeScriptJavaScript

How does it compare?

heroiclabs/nakamaelastic/beatsfullstorydev/grpcurl
Stars12,59712,61512,632
LanguageGoGoGo
Setup difficultymoderatemoderateeasy
Complexity4/53/52/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires Docker and a PostgreSQL or CockroachDB database, a single docker-compose command starts both services together.

So what is it?

Nakama is an open-source backend server for games and social apps. It provides the infrastructure that multiplayer games and interactive apps typically need: user accounts, data storage, friend lists, group chats, real-time multiplayer sessions, leaderboards, and matchmaking. Rather than building all of these systems from scratch, a game studio can deploy Nakama and use its built-in features via client libraries. The feature list includes user registration and login through social networks, email, or device ID, storage collections for saving game state or user settings, a social graph for tracking friend connections, one-on-one, group, and global chat with persistent message history, both real-time and turn-based multiplayer, dynamic and seasonal leaderboards, tournament brackets that can be chained into leagues, team-based party play, in-app purchase validation, and push notifications to connected clients. Custom server logic can be added using Lua scripts, TypeScript/JavaScript, or native Go code. The server requires CockroachDB or a Postgres-compatible database to store its data. The quickest way to start a local development environment is with Docker: a single docker-compose command downloads the server and database images and starts them together. Native binary downloads are also available for running without Docker. Client libraries are available for several platforms so that games can connect to the server from their existing tech stack. The server is built for production scale and is described as being used by game studios worldwide. Detailed documentation covering configuration, deployment to cloud providers, and all API features is hosted on the Heroic Labs website. A community forum exists for developer questions and discussion.

Copy-paste prompts

Prompt 1
Using the Nakama Go client SDK, write code to create a user account, log in, and join a real-time multiplayer match.
Prompt 2
How do I write a Nakama server-side Lua script that runs custom logic when a match ends and updates the leaderboard?
Prompt 3
Set up a local Nakama development environment with Docker Compose and connect a Unity game client to it.
Prompt 4
How do I configure Nakama matchmaking to group players by skill rating for a turn-based mobile game?

Frequently asked questions

What is nakama?

An open-source backend server for multiplayer games and social apps that provides user accounts, friend lists, real-time chat, leaderboards, and matchmaking out of the box.

What language is nakama written in?

Mainly Go. The stack also includes Go, PostgreSQL, CockroachDB.

How hard is nakama to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is nakama for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.