Kettle
Game backend · on Cloudflare's edge

The online half of your game. Already built.

Accounts, live rooms, matchmaking, an economy only the server can grant, store purchases, friends, guilds and saves. Kettle never learns what your game is about, so the next one gets all of it for free.

0servers to keep alive
1.2KB/sper player in a busy room
16/16rooms back after a mid-game deploy
104msp95 action acknowledgement under load
01 — Modules

Everything an online game rebuilds. Built once.

Every piece is generic. Your game brings its rooms, rules, items and words; the server has the last word on anything that matters.

01

Accounts and sign-in

Anonymous in one call, then Apple, Google, Game Center, Play Games or an email code. Sessions survive reinstalls.

02

Real-time rooms

A Room class with seats, resume after drops, fixed ticks and changes-only sync. Many rooms per Durable Object.

03

Codes and matchmaking

Six-letter room codes without look-alikes, first-come queues per mode, and fair timing at any latency.

04

Live areas

Players in the same place see each other move and emote, with overflow shards, friends-only homes and server-judged skirmishes.

05

A server-owned economy

Currencies, items, levels, expiry, crafting and daily caps. Every write versioned and idempotent; clients never grant.

06

Store purchases

App Store and Google Play verified on the server, granted once, monthly caps by age band, refunds revoked.

07

Friends and presence

Friend codes, requests, blocks respected both ways, and a joinable presence status your friends can see.

08

Guilds and worlds

Roles, requests and help counts; shared region maps with plots, fog of war and timed travels.

09

Trades and markets

Atomic player-to-player swaps and a fixed-price market with a fee sink, inside the game's own limits.

10

Leaderboards and events

Daily, weekly and all-time boards, rank among friends, timed event windows and once-per-window rewards.

11

Cloud saves

Versioned slots: a stale write gets the newer save back to merge. Large saves go to R2 on their own.

12

Remote config

Values checked against your defaults, flags by percentage, platform, version, country and age band.

13

Moderation

Reports with your reasons, auto-hide, blocks, strikes and bans. Names from word lists: no free text to police.

14

Push and inbox

Notice kinds with templates, per-player settings, a scheduled outbox and an in-game inbox.

15

Privacy built in

Data export and account deletion in two calls, with one inventory of every table that holds a player.

16

Telemetry

Only the events you declare, with hashed player ids, to Analytics Engine and a raw archive in R2.

17

One Worker, many games

Each game under its own path with its own database and secrets. Tokens never cross games.

18

Godot and TypeScript

SDKs that track room state, reconnect with backoff and queue offline spends. Load bots included.

02 — How it works

Plain classes in. A global backend out.

Room code has no Cloudflare imports, so it stays portable. The platform reads what your game declares and serves the rest.

  1. Write your roomsCheck intents, tick, broadcast. The room has the last word.
  2. Declare your catalog and eventsItems, exchanges, gifts, flags and telemetry live in your repo, never in Kettle.
  3. Deploy your game WorkerThe platform binds it by name and serves your API under your game's path.
  4. Run it from the consolePlayers, activity, cost, config, purchases and reports, per game and across all of them.
rooms.tsTypeScript
class RoundRoom extends Room {
  onIntent(player, intent, timing) {
    // your rules; timing is latency-aware
    return { ok: true };
  }
}
export const Rooms = createRoomHost({ round: RoundRoom });
03 — The console

Every game you run. Only yours.

Sign in with an emailed link. See activity across all your games, then open one to look up a player, grant an item, publish config or review reports.

Illustrative data

PlayersLook up, ledger, grants and revokes with a note, export and deletion.
ConfigCheck, diff, publish and roll back, with flags by segment.
Reports and bansA review queue, takedowns, strikes and bans.
Cost and alertsUsage and estimated cost per game, emailed when it crosses a line.
04 — Cost

Pay for players. Not for idle servers.

Hibernating sockets, many rooms per object and changes-only updates keep the bill small. Estimates from Cloudflare's published prices, October 2026.

$0–5a month while you build and playtest: the free plan or the Workers Paid base.
$5–10a month for about 3,000 daily players, mostly inside included usage.
$120–390a month for about 3,000 players online at once, around the clock.
For studios

Bring your next game.

Seven games are being built on Kettle today. The next one, yours included, plugs in without Kettle changing.