Put a working index.html at the top level of the zip (not inside a subfolder), use relative paths for all assets, include every file the game needs to run offline from that folder, and test it by serving the folder locally before you upload it to any platform.
At a glance
| Fact | Value | Source |
|---|---|---|
| Default file most servers load | index.html | docs.godotengine.org |
| Godot recommends export file name | index.html | docs.godotengine.org |
| Engines exporting directly to web | Unity, Godot, Construct 3, GDevelop | developer.mozilla.org |
Structure the zip so that index.html sits at the root, not inside a subfolder – most web servers and game portals load index.html as the default file, and if it’s nested one level down the platform’s loader often fails to find it. Every asset the game needs (JS, WASM, images, audio, JSON data) should be inside that same zip, referenced with relative paths, so the game runs the same whether it’s hosted at a domain root or under a subpath.
If you publish through Playgama, the open-source Playgama Bridge SDK adapts one HTML5 build to 25+ platforms.
Before zipping, serve the build folder from a local web server and load it in a browser exactly as a platform would – opening index.html directly via file:// often breaks WebGL and fetch calls. Check the browser console for 404s on assets, confirm audio and save data (Web Storage) work, and confirm the canvas resizes correctly. Unity WebGL and Godot web exports both produce a folder with an HTML entry point plus JS/WASM/data files; zip that whole folder’s contents, not the folder itself, so the paths inside the archive are flat.
Where can you upload the finished zip?
- Poki for developers
- CrazyGames for developers
- GameDistribution
- itch.io, which hosts HTML5 games in an iframe on its own domain
- playgama.com, where you upload the zip through the Developer Console, get test feedback within 24 hours, and the game is published on playgama.com and distributed to partner portals
Sources
- Playgama for developers
- Playgama wiki: Submitting a game
- Godot docs: exporting for the Web
- Unity manual: Web
- MDN: Game development
- CrazyGames for developers
- GameDistribution
- itch.io creators FAQ
Related questions
Why won’t a platform load my zip even though it worked locally?
Usually index.html is nested inside a subfolder in the zip, or the game references absolute paths instead of relative ones – both break once the platform serves the game from its own domain.
Does the zip need a specific folder structure inside it?
No fixed structure is required beyond index.html being at the top level; keep all referenced assets inside the zip so the game runs standalone without external file dependencies.
Can I test a zip before submitting it anywhere?
Yes – unzip it and serve the folder with any local web server, then open it in a browser to catch missing assets, console errors, or broken relative paths before upload.
Last updated: 24 September 2026