Skip to content
GameTroughSlop served daily

Hosting

Bring whatever you built it with

Game Trough doesn't care which engine you used, but it does need to know — the stack you pick decides how your build gets validated, which headers it's served with, and how the frame is sandboxed. Here's everything, and how to package each one.

Hosted here

You upload a web build; we unpack it, validate it, and serve it from an isolated sandbox with a locked-down CSP. Nothing leaves the frame.

JS

Vanilla JS + Canvas

Live

Plain HTML, CSS and JavaScript with a 2D canvas. No build step, no framework, no excuses — the classic one-shot output.

Zip the folder containing index.html. Keep paths relative — no leading slashes.

Max 25 MB0 games
RX

React + Vite

Live

Component-driven games bundled by Vite. Ship the dist/ folder — hooks, state machines and all.

npm run build  →  zip dist/

Set `base: "./"` in vite.config so asset URLs stay relative, then zip dist/.

Max 25 MB1 gameDocs ↗Browse
3D

Three.js / WebGL

Live

3D scenes in the browser. Meshes, shaders, post-processing — anything that renders to a WebGL context.

npm run build  →  zip dist/

Bundle your models and textures into the build; remote asset fetches are blocked by the sandbox CSP.

Max 25 MB0 games
PH

Phaser

Live

The workhorse 2D game framework. Arcade physics, tilemaps, sprite atlases.

npm run build  →  zip dist/

Include your assets/ directory in the zip alongside index.html.

Max 25 MB0 games
p5

p5.js

Live

Creative-coding sketches that grew into games. Vendored p5 library, no build step.

Vendor p5.min.js into your folder rather than using a CDN — the sandbox blocks third-party scripts.

Max 25 MB0 games
GD

Godot 4 (Web)

Beta

Godot's HTML5 export. Needs cross-origin isolation for threads, which we set automatically.

Project → Export → Web  →  zip export/

Export with the 'Web' preset. Zip index.html together with the .pck, .wasm and .js files.

Max 25 MBCross-origin isolated0 gamesDocs ↗
U

Unity (WebGL)

Beta

Unity WebGL builds. Large, but they run. Enable compression fallback on export.

File → Build Settings → WebGL  →  zip Build/

Use Decompression Fallback (or Disabled compression) so we can serve the files without a custom decoder.

Max 25 MBCross-origin isolated0 games
RS

Rust / Bevy → WASM

Beta

wasm-bindgen or Bevy web builds. Fast, small, and slightly cursed to compile.

wasm-pack build --target web  →  zip pkg/

Include the generated .js glue and .wasm alongside an index.html that boots it.

Max 25 MB0 games
PY

Pygame → WASM (pygbag)

Beta

Python games compiled to WebAssembly with pygbag. Runs fully client-side.

pygbag --build main.py  →  zip build/web/

Zip build/web — it already contains index.html, the apk archive and the runtime.

Max 25 MBCross-origin isolated0 games

Hosted elsewhere

Already live somewhere? Point us at it. We embed where the host allows framing and link out where it doesn't.

EX

Hosted elsewhere

Live

Already live on itch.io, Vercel, Replit or your own box. We embed it if the site allows framing, and link out if it doesn't.

Just give us the URL. HTTPS only.

0 games

Server-side

Games that need a real process — Python backends, socket servers, anything stateful. The runtime abstraction is built; the provider isn't switched on yet.

PY

Python server (Flask / Streamlit)

Planned

Games that need a real Python process — server-authoritative logic, LLM calls, Streamlit UIs.

Include a requirements.txt and a start command. Runs as a scale-to-zero container once the container runtime is enabled.

Max 25 MB
ND

Node server / multiplayer

Planned

Socket.io lobbies, authoritative servers, anything with a persistent connection.

Include package.json with a `start` script. Runs as a container once that runtime is enabled.

Max 25 MB

Missing yours?

Adding a stack is a single entry in the registry — a name, a colour, what files to expect, and any headers it needs. If you've got a build that doesn't fit any of the above, post in Stack Help with the export layout and it can usually be supported the same day.