Publish your game
Kata games are static. No server required (unless you want multiplayer). Compile your scenes with the CLI, build your UI, and drop the output on any static host.
1. Compile .kata → KSON
kata build "scenes/**/*.kata" -o dist/kson
Each .kata source becomes a .kson.json file — the parsed action list your UI will import. In most projects you bundle these straight into your Vite/bun build, so this step is already part of bun run build.
You can also keep a project config in kata.config.json:
{
"input": "scenes/**/*.kata",
"output": "dist/kson"
}
2. Build your UI
Whatever bundler you’re using (Vite, Bun, Next.js), run its production build:
bun run build
The scaffolded templates ship with a sensible default. If you’re rolling your own, make sure to:
- Inline or preload the
.kson.jsonfiles - Set
NODE_ENV=productionso devtools compile to a no-op shell - Bundle your audio/image assets into the static output
3. Deploy
Vercel / Netlify / GitHub Pages
Point the host at your dist/ (or .output/public, or whatever your bundler emits). Zero configuration.
Bun host
bun --bun ./dist/index.html
Lint before you ship
kata graph "scenes/**/*.kata" --lint
This reports:
- Orphaned scenes — unreachable from any entry point
- Dead ends — scenes with no choices and no outbound edge
- Broken targets —
-> @scene/idpointing at a scene that doesn’t exist
Fix these before deploying and you avoid an entire class of player-reported bugs.
Next steps
- Plugins guide — analytics, auto-save, content warnings, profanity filter
- Testing guide —
StoryTestRunnerlets you write behavioral tests for branching paths - Multiplayer guide — add co-op or networked rooms on top of any existing game
- Devtools guide — in-browser timeline, profiler, and inspector