Asobi
FeaturesSDKsDemoShowcaseDocsBlogCloudSign inDiscordGitHub
Docs menu▾

Start here

OverviewQuick start - Cloud (fastest)Quick start - Self-hostCore concepts

Onboard your engine

UnityGodotDefoldUnrealFlameJavaScript / TypeScriptDartLÖVE

Learn

Build your first backend▾
0. What you are building1. Your backend bundle2. Install the client SDK3. Connect and prove it4. Guest vs account5. Storing data6. Set up a match7. Connect to a match8. Run a match9. End a match10. Create a world11. Connect to a world12. Run a world13. End a worldWhere next
Tic-tac-toeLive-edit your game (hot reload)Samples

Build

MatchmakingLobbiesWorld serverLarge worldsPhases & seasonsVotingEconomy & IAPLeaderboards & tournamentsAuthentication

Reference

game.* APICallbacksBotsErlang API (advanced)WebSocket protocolREST APIDatagram planeConfigurationErrors & status codes

Tooling

asobi CLIasobi dev (live loop)TestingTesting with multiple playersCookbook

Operate

Self-host (Docker, VPS, k8s)ClusteringPerformance

Security

OverviewThreat modelAuth & rate limitingKnown limitationsLua sandboxLua trust modelLua known limitations

More

How Asobi compares
Migrate from▾
NakamaHathoraPlayFab
ArchitectureBenchmarksGlossaryNo lock-inFAQBest practicesChangelog

Docs / Security

Security overview

Asobi is built on a Erlang/OTP stack with a small, deliberate trust boundary between player input and server-side game state. This section documents what the runtime defends against, what it does not, and how to deploy it safely.

Reading order

Threat model

Trust boundaries, the player-input edge, distributed Erlang assumptions, and what “trusted” actually means for game-module code.

Authentication & rate limiting

Bearer-token verification, Apple StoreKit 2 JWS chain validation, Steam ticket validation, and the per-route rate-limit gate.

Known limitations (asobi)

Trust assumptions about game-module code, distributed Erlang defaults, OS-level resource bounds the runtime does not enforce.

Lua sandbox model

What asobi removes, replaces, and time-budgets in the Luerl state hosting your game.

Lua trust model

Why mounted Lua scripts are trusted in the same sense as the binary, and audit results that confirm specific escape attempts fail.

Lua known limitations

Resource caps the Luerl sandbox does not enforce yet, deployment hygiene, and best-effort rollback behaviour.

Reporting vulnerabilities

Send reports to security@asobi.dev rather than opening a public issue. We aim to acknowledge within 72 hours and ship a fix or mitigation within 14 days for critical findings.

Asobi

Open-source game backend on Erlang/OTP.

Product

HomeCloudDemoShowcaseBrandDocs

Community

GitHubDiscordBlogRSS

Legal

TermsCloud TermsRefundsPrivacyDPA

Apache 2.0 - Widgrens IT AB, org.nr 559241-2752, Melongatan 15, 754 49 Uppsala, Sweden. VAT no. SE559241275201.