compare · games · honest, falsifiable, no marketing
Photon ships the frames. smugglr ships the rows.
Half of multiplayer is turn-based, async, or once-a-second. smugglr is the whole backend for that half, and the persistent tier behind a netcode framework for the other half. CLI, Rust crate, npm package. There is no service you have to operate, it is free*.
Multiplayer is twenty percent netcode and eighty percent persistent state.
Photon ships the twenty percent. The other eighty is accounts, inventory, quests, currencies, leaderboards, mail, friends, deck-builds, save slots, settings, telemetry. Every Photon shop builds and runs that tier. Every Mirror shop builds and runs that tier. Every Colyseus shop builds and runs that tier. The default answer is Firebase or a custom Express service in front of Postgres, and both eat engineering hours that have nothing to do with the game.
smugglr is the eighty percent. SQLite on the client, SQLite on the server, content-hash diff between them. The schema is yours. The rows are yours. There is no managed plan to outgrow.
If you are not building a game, the general comparison is the better landing page. The matrix below is the games-shaped read.
matrix
# every layer of a game backend, where each tool sits| Tool | Lane | Tick rate | Persistent storage | Cost floor |
|---|---|---|---|---|
| smugglr | Persistent tier + sync | None (event / poll) | SQLite, you own | Your hosting bill |
| Photon Fusion | Authoritative netcode | 30 to 60 Hz | None, BYO backend | Free 100 CCU, $125 / mo at 500 |
| Photon Quantum | Deterministic netcode | 30 to 60 Hz | None, BYO backend | Free 100 CCU, $125 / mo at 500 |
| Colyseus | Room-based netcode | Configurable | None, BYO backend | Free OSS, $15 / mo cloud |
| Mirror Networking | Unity netcode | Configurable | None, BYO backend | Free MIT, BYO host |
| Nakama (Heroic Labs) | Full game backend | Custom (Lua / Go) | CockroachDB, theirs | Self-host free, cloud quote |
| PlayFab | Full game backend (REST) | None (REST) | PlayFab cloud, theirs | Free MAU tier, per-MAU |
| AWS GameLift | Game-server orchestration | Engine-defined | None, BYO backend | Per-instance hourly |
| Edgegap | Per-session game hosting | Engine-defined | None, BYO backend | Per-minute container billing |
| Firebase Realtime DB | Leaderboard / state tier | Pub-sub | Google's JSON tree | Free Spark, then per-op |
| Firestore | Leaderboard / state tier | Pub-sub | Google's document store | Free Spark, then per-read / per-write |
| Supabase Realtime | Postgres pub-sub | Websocket | Postgres, theirs | Free tier, then per-message |
"Lane" names what the tool actually does. Photon's lane is netcode; PlayFab's lane is the full backend; smugglr's lane is the persistent tier. A studio can stack lanes (Photon for the frames, smugglr for the rows) or pick a single tool that covers more than one. Cost floors are the entry tier as advertised; the gap between free-tier usage and a real workload is where most billing surprises happen, and that gap is steepest on per-op pricing models like Firebase and Supabase Realtime.
Tools that ship the tick rate. smugglr does not compete here.
If your game has frames and hitboxes, one of these is the right answer. Read this section to confirm smugglr is not on that shelf, then move on.
Photon (Fusion, Quantum, PUN)
Authoritative netcode. UDP. 30 to 60 Hz. Lag compensation, prediction, snapshot interpolation.
Photon Cloud handles room creation, matchmaking, transport, and authoritative simulation. State is ECS objects, not rows. Free 100 CCU; $125 / mo at 500 CCU on Growth; $0.50 / CCU above 2,000 on Premium. Photon ships the netcode and stops there: accounts, leaderboards, inventory, mail, friends are the studio's problem to solve. That is where smugglr fits, alongside Photon, not in place of it.
Colyseus
Room-based authoritative server in Node. MIT. Cloud at $15 / mo.
Colyseus models multiplayer as rooms with a server-side state schema and delta sync to clients. Configurable tick rate. Persistent storage is not its problem; you bring a database. The OSS framework is free and self-hostable; managed Colyseus Cloud starts at $15 / mo. Same persistent-tier gap as Photon.
Mirror Networking
Unity high-level netcode, MIT. You bring the host.
Mirror is the de facto OSS Unity netcode after the UNet sunset. Free, MIT, no licensing. Hosting is the studio's problem (Edgegap, dedicated boxes, peer-to-peer with relay). Persistent state is the studio's problem. Mirror is the cheapest entry into authoritative netcode and offloads the most onto the studio. smugglr fills the persistent gap without adding another vendor.
Edgegap, GameLift
Per-session game-server orchestration. Per-minute or per-instance billing.
Hosting concern only. They orchestrate a container or instance for the duration of a match and charge by minute or hour. They do not ship netcode and they do not ship persistence. Studios pair them with Mirror, Photon Bolt, or Fish-Net for the netcode, and with Firebase, PlayFab, or a custom backend for persistence. smugglr replaces the persistence half.
Where the eighty percent lives. This is smugglr's shelf.
Every game has accounts, inventory, currencies, leaderboards, quests, mail, settings, telemetry. The four tools below are what studios reach for. None of them are SQLite end to end. smugglr is.
Firebase Realtime DB, Firestore
The default leaderboard tier. The most-cited reason to migrate off.
Firebase is what most indie and mid-size studios reach for first because it is fast to integrate and the free tier covers a prototype. The Blaze tier prices reads, writes, and storage individually; for a leaderboard with hot rows, costs scale non-linearly with concurrent players. Lock-in is real: data lives in Google's schema, security rules are theirs, exports are work. smugglr does not host data. SQLite is the data, the schema is yours, exports are a file copy.
PlayFab
Microsoft's full game backend. Accounts, inventory, leaderboards, CloudScript.
PlayFab covers everything in the persistent tier with a REST API and a generous free MAU bucket. The cost is total platform lock-in: data, identity, server logic, anti-cheat all live inside PlayFab. Migration cost is rebuilding the entire player layer. PlayFab is the right call if you want one vendor for the whole eighty percent and you accept the lock-in. smugglr is the right call if you want SQLite end to end and the freedom to host the rest of the platform yourself.
Nakama (Heroic Labs)
Open-source game backend. Self-host free; managed cloud is custom-quote.
Nakama is the closest peer to "the whole eighty percent in one tool" that is also OSS. Built in Go, backed by CockroachDB, scriptable in Lua or TypeScript. Self-hosting is real work; Heroic Cloud is custom enterprise pricing. smugglr is smaller scope on purpose: it does not ship matchmaking, it does not run user accounts, it does not bundle CloudScript. It ships row sync. Studios that need full game-server features pick Nakama; studios that want SQLite as the source of truth pick smugglr.
Custom backend (Express + Postgres)
The honest fourth option. Most studios over 50 employees end up here.
The pattern: a Node or Go service in front of Postgres or MySQL, with REST or gRPC for the client, and a sync mechanism the team writes themselves. Total control, total maintenance, every hour spent on the backend is an hour not spent on the game. smugglr collapses the sync layer of that stack into a CLI, a Rust crate, or an npm package, with SQLite as the storage. The custom service stays where business logic lives; the row movement stops being homework.
Where smugglr lives, depending on whether your game has a tick rate.
Tickrate game
FPS, MOBA, racing, fighting, action multiplayer. 30 to 60 Hz.
Photon (or Mirror, Fish-Net, Colyseus) ships the netcode. smugglr ships the persistent tier behind it: accounts, inventory, currencies, leaderboards, quests, mail, settings, telemetry. The two layers do not talk to each other directly. The netcode handles the match; smugglr handles the data that survives the match. Costs: Photon's $125 / mo at 500 CCU plus your hosting bill for smugglr. The hosting bill is fixed; only Photon scales with players.
Non-tickrate game
Turn-based, async, idle, deckbuilder, autobattler, MMO social hub, 4X.
smugglr is the whole backend. SQLite on the client, SQLite on the server, content-hash diff every few seconds via the watch daemon, or LAN broadcast for same-network co-op. No netcode framework. No Photon CCU bill. Costs: your hosting bill, fixed. This is the half of multiplayer that does not need a server-shaped tool, and the half where smugglr replaces the entire backend stack instead of one layer of it.
Honest about the lanes it does not cover.
| If you need | The right tool |
|---|---|
| Authoritative tick-rate netcode (FPS, racing, MOBA, fighting) | Photon Fusion, Mirror, Fish-Net. UDP, prediction, lag compensation. |
| Per-session game-server hosting | Edgegap, GameLift, Hathora successors. Container orchestration per match. |
| Anti-cheat at the netcode layer | PlayFab, Easy Anti-Cheat. smugglr trusts the writer. |
| Matchmaking / lobby coordination | Photon, Nakama, PlayFab. Pairing players is not row sync. |
| Voice / video chat | Vivox, Agora, Photon Voice. Different transport entirely. |
smugglr ships the persistent tier. The other lanes have mature tools and known costs. The honest position is: pair smugglr with a netcode framework when you need frames, or use smugglr alone when you do not.
Three ways to use it. Same algorithm, same adapters, same verbs.
CLI
Run smugglr as a command-line tool.
curl -fsSL https://smugglr.dev/install | bash
The curl installer covers macOS and Linux. On Windows, use cargo install smugglr or the release binary.
Rust crate
Embed the engine in a Rust service.
cargo add smugglr-core
No CLI dependencies. Same diff, same targets, same verbs, called from your code.
npm package
Use it from the browser or Node.
npm install smugglr
Pairs with @smugglr/zustand and @smugglr/nanostores when you want a sync layer behind your existing client store.
Source on github.com/rafters-studio/smugglr. MIT licensed.
- Free as in OSS, not free as in beer, even though we do ship under MIT.