Ship a game to the marketplace
A marketplace game is a game you build once and anyone can embed: you publish a public GitHub repo, the platform indexes it, and users reach it by its game id with no involvement from you. This is the opposite end from a custom game, which only you can use and which you host yourself. This section is the detailed, build-and-publish guide to the marketplace path.
If you only want a game for your own site keys, you want custom game development instead. Come here when you want to distribute a game to every Caputchin user.
The whole pipeline
Each box maps to a page in this section:
| Piece | What it is | Page |
|---|---|---|
| The game | A self-contained JS bundle built against the game SDK that runs in the widget's sandboxed iframe. | Build a marketplace game, SDK reference |
| The manifest | A caputchin.json at the repo root describing the game, its presets, and its bundle. | The caputchin.json manifest |
| The replay contract | A deterministic run(seed, trace) -> verdict the server re-runs to reach the authoritative decision. | The replay contract |
| The engine kit | An optional authoring kit that produces a conforming run from a plain reducer. | The engine kit |
| Publishing | Tag the repo, the indexer discovers and pins it, optionally automate with CI. | Publish to the marketplace |
Replayable vs not replayable
The single most important idea on this path: a marketplace game can gate verification only if it is replayable server-side. When the indexer ingests your game it runs a replay self-check: it loads your headless run artifact in a sealed isolate and confirms it produces a valid verdict.
- Self-check passes → the game is replayable: a real player's round is re-run on the server to reach the decision, so the game can gate a site key.
- Self-check fails → the game shows Not replayable. It is still listed and still embeddable, but only as UX (not a security gate) until you publish a version that passes. Sites already on an earlier replayable version keep running that exact snapshot.
This is why determinism is not optional polish: it is the line between a game that can guard a site key and one that is merely decorative.
How a marketplace game differs from a custom game
| Marketplace game | Custom game | |
|---|---|---|
| Who can embed it | Anyone, by game id | Only you |
| Hosting | Platform-pinned from your GitHub / npm | You host the bundle (game-src) |
| Customization schema | Declared in caputchin.json | Declared on the dashboard |
| Replay artifact | Indexed from the manifest's run | Uploaded on the dashboard |
| Discovery | Browsable marketplace | None |
Where to start
If you have never built a Caputchin game, read Build a marketplace game top to bottom, then The replay contract. When you are ready to ship, follow Publish to the marketplace. The engine kit is optional and can be skipped entirely.
See also
- Build a marketplace game: the build tutorial.
- The replay contract: what makes a game replayable.
- Publish to the marketplace: tag, index, automate.
- Custom game development: the self-hosted, your-keys-only alternative.