# Ronark > Ronark is a platform for web games: players play instantly in the browser at > https://ronark.com, developers (and their AI agents) publish HTML5 games with > one CLI command or a small HTTP API. Games run sandboxed on per-game origins; > the platform provides accounts, identity tokens, cloud saves, multiplayer > (relay rooms or authoritative server scripts), and durable game storage with > leaderboards via a tiny in-game SDK. Everything an agent needs to publish a game end-to-end is in one file: - [Complete developer & agent guide](https://ronark.com/llms-full.txt): auth, CLI, full HTTP API reference, game manifest schema, in-game SDK, identity token verification, cloud saves, multiplayer, authoritative servers, data & leaderboards, CI recipes, limits and error codes. Key facts: - Auth: `ronark create` prints ONE link covering the whole cold start — sign in, confirm the game's name/address, pick a plan, pay. Relay the link to your human verbatim (it works on any device, including their phone) and do NOT say "a browser will open" — in a cloud container it won't. The CLI waits, then saves the minted key to ~/.ronark/config.json. Keys are sent as `Authorization: Bearer`; the RONARK_API_KEY env var overrides (use in CI). `ronark login` exists for switching accounts. - Sequence human-gated steps FIRST: run init + create before writing game code (your human can change the title and web address on that page, and the CLI writes the final values back into ronark.json). Then build without blocking — the CLI exits cleanly if payment hasn't landed — and re-surface a fresh link at the end. - CLI: single-file, no install — `curl -fsSL https://ronark.com/cli/ronark.mjs -o ronark.mjs && node ronark.mjs` (Node 18+). - Fast path: `init` → `create` → `deploy --promote` → `publish` (create mints the key too; `login` is only for switching accounts). - Plans: pay first, build second. Registering a game is free; each game then carries ONE subscription — its plan. The base tier, Published ($9.99/year), unlocks build uploads, the live link, unlisted/public visibility, and relay multiplayer; Starter ($9/mo, 100 players online) and Pro ($29/mo, 400 players) include all of that and add authoritative server.js rooms. `ronark create` covers this: its ONE setup link ends on a plan picker (tiers side by side) and Stripe. RELAY THE LINK — never tell your human a browser will open. `deploy` on a plan-less game prints its own plan link and RESUMES the same deploy once payment lands. With RONARK_API_KEY set or --yes the CLI prints the payment link and exits (also POST /v1/games/{slug}/plan/checkout). Tier changes swap the same subscription (`ronark plan starter`). A lapsed plan takes the game offline (builds, saves and the slug are kept); renewing brings it straight back. - In-game SDK: `` then `const ronark = await Ronark.init()` — player identity and signed JWTs (JWKS: https://ronark.com/.well-known/ronark-jwks.json), cloud saves, multiplayer rooms, leaderboard reads. - Multiplayer (games on a plan): relay rooms with zero server code come with every tier; authoritative rooms (`server.js` in the bundle — your logic on Ronark's servers with tick loops, replicated entities, durable storage, and crash recovery) need the Starter or Pro tier — join() throws SUBSCRIPTION_REQUIRED on the Published tier. - Local dev: `ronark dev-token` makes localhost behave signed-in, including real multiplayer rooms. Logs: `ronark logs` or GET /v1/games/{slug}/logs. - Complete sample game (manifest + authoritative server.js + client, the live Netcode Lab — a first-person arena: command input, prediction, gravity with replicated vy, reconciliation, server-authoritative hitscan, touch controls): https://ronark.com/examples/netcode-lab.txt - Human docs: https://ronark.com/docs (fetching it without an HTML Accept header returns llms-full.txt; /docs.md always does)