Community: pages, replays, daily, jams
The culture layer runs on one idea: an input log is a replay, and the server re-runs every replay it stores. Nothing on a leaderboard is trusted — it is verified, and the state hash is the receipt.
Submit a game
Open or create your cartridge in the editor, or drop its PNG into the player. Choose Share, enter a cart name, and choose share cart. A successful submission gives you a public page and adds the named cart to the game library. An unnamed submission gets a shareable page but does not get a library listing. No account is required.
The library combines bundled games with named submissions from the publishing service. Bundled games remain playable when that service is unavailable; publishing, comments, and replays require it. A submission error is shown in the Share dialog, and your local cart remains yours.
Cart pages
Every shared cart has a public home: /cart/<hash>. The page plays the game inline, shows the tier badge, the creator, the date, the remix tree (who forked whom), and the cart's verified replays.
- Comments: post with an optional name, no account. When you post,
you are shown a delete token exactly once — save it if you want to delete your comment later (DELETE with the x-delete-token header; the founder can moderate any comment). Lose the token and the comment stays.
- Remix tree: every cart remembers its parent (the editor sends it
automatically when you share a remix). The tree on the cart page is the lineage — click any node to walk it. Cycles are impossible by construction.
Replays and verified boards
While you play — anywhere the console runs, editor or player — your input is recorded as a log, one byte per frame. share replay sends the log to the server, which loads the exact cart bytes, re-runs the log headlessly, and stores the run only if it completes clean and hashes to what you claim. The board on the cart page lists the top 200 verified runs with its score and state-hash receipt; watch on any row plays the run back (/play?cart=<hash>&replay=<id>&seed=<n> — the link is the run).
A run that errors is rejected, not ranked. A claimed hash that does not match is rejected with the real hash in the message. This is the CLI's determinism contract wearing a web UI: same cart bytes plus same log and clean initial state reproduce the same covered machine behavior. The regression corpus checks this across supported engine targets; it is not a guarantee about every future browser.
The daily
/daily (or the daily button in the lobby) is a seeded challenge: the same cart for everyone on the same date, with a date-derived seed the host injects before frame 0. Everyone faces the same board; the leaderboard is replays run with that seed. The rotation draws from the seeded library across the three tiers.
Jams
A jam is a theme, a seed cart, a seed, and a window (/jams/<id>). Enter a published cart while the window is open; the board ranks entries by their cart's best verified replay played with the jam seed — same rule as every board, filtered to the challenge. The entry's watch link opens the ranked run.
The loop, end to end: play the seed cart (the jam seed is injected automatically), share replay, see yourself on the board, watch the run above you, take another shot.
Reports and moderation
Choose report this cart on a cart page and describe the problem. Reports are private to the service operator; the confirmation includes a reference ID. Do not include secrets or unnecessary personal information. Reporting may be unavailable if the operator has not enabled it. Operators can investigate, hide/restore carts and retain a private decision history. Display names are unverified.
Friendly names are immutable claims: later versions need a new name, while every stored version keeps its hash link. This is a bounded community service; see support and limits for capacity and retention behavior.