tikron
infrastructure for games

Server-authoritative multiplayer for web games — on the edge, in minutes.

An open-source SDK you deploy to your own Cloudflare account in minutes — the free tier works, no lock-in. One Durable Object per room, placed near your players in ~275 cities. State lives on the server, clients send intents, reconnection is built in.

Built so AI coding agents ship multiplayer games in one session.

measured, not marketing
85 ms
p50 — full 20-player AOI room, deployed
128 CCU
across 8 rooms — p50 82 ms
44×
fewer broadcasts after flush throttling
≈77 B/s
idle turn-based room per client
why Tikron

Server authority

The server owns state and validates every payload, so cheating by packet forgery isn't a thing you bolt on later. Interest management (AOI) sends each client only what it can see — anti-wallhack by construction.

Edge rooms

Each room is its own Durable Object, spun up on demand across ~275 cities and placed near its players. Rooms scale horizontally, and state-preserving reconnection is built into the core.

AI-first DX

Genre presets pick your netcode in one decision. An in-repo AGENTS.md and llms.txt make a coding agent productive in one context window — npx create-tikron and go.

quickstart

Clone, install, deploy

# 1. clone + install
git clone https://github.com/ONOFFERDEV/tikron-platform
cd tikron-platform && pnpm install

# 2. log in to Cloudflare (free tier works)
pnpm exec wrangler login

# 3. ship a starter game to the edge
pnpm --filter tikron-starter deploy

A whole realtime room

import { CasualRealtimeRoom, type Client } from "@tikron/server";

interface State { cursors: Record<string, { x: number; y: number }> }

export class Board extends CasualRealtimeRoom<State> {
  onCreate() {
    this.setState({ cursors: {} });
    this.onMessage("move", (c, p) => {
      const me = this.state.cursors[c.id];
      if (!me || typeof p?.x !== "number") return;
      me.x = p.x; me.y = p.y;
      this.markStateChanged();   // synced to everyone
    });
  }
  onJoin(c: Client) { this.state.cursors[c.id] = { x: 0, y: 0 }; this.markStateChanged(); }
  onSeatExpired(c: Client) { delete this.state.cursors[c.id]; this.markStateChanged(); }
}
pricing

Tikron is open core: the SDK runs on your own Cloudflare account (you self-host the rooms). Optional hosted services add leaderboards and a usage dashboard, keyed by API key.

Open source
$0
  • The SDK + templates, MIT
  • Self-hosted on your Cloudflare account
  • Unlimited rooms & players — your infra, your bill
  • Get the repo
Scale
Custom
  • Higher hosted-service caps
  • Priority support
  • Contact us

A room-hour = one live room for one hour; idle rooms cost nothing. Self-hosted rooms bill to your Cloudflare account — roughly ~$0.006 per room-hour at Cloudflare's own Durable Object pricing (approximate).

limits & roadmap

What Tikron does and doesn't do today — so you can decide before you commit.

Full detail: AGENTS.md → Limits & roadmap.