How to Publish a Browser Game on itch.io

itch.io is the largest indie game platform on the web and the easiest place to publish a browser game. You upload a zip, set a price (which can be zero), fill out a metadata page, and your game has a public URL with embedded play. This guide covers how to publish on itch.io start to finish — preparing your HTML5 build, uploading, configuring the playable embed, and pricing options.
Key takeaways
- itch.io accepts HTML5 games as zip files containing an index.html and assets.
- The platform supports pay-what-you-want, free, and fixed-price pricing.
- Browser-playable games embed directly on the page — no download required for players.
- Metadata (cover image, screenshots, genre, tags, description) drives discoverability.
- itch.io takes a default 10 percent revenue share, configurable by the creator.
Step 1: Prepare your build
Before you touch itch.io, your game needs to be a working HTML5 bundle. That means an `index.html` file at the root, plus all dependent assets (JS, CSS, images, audio) in subfolders or alongside it.
Test the build by opening `index.html` in a browser locally. If it works in a `file://` context, it will probably work on itch.io — but some games require running on a local server (because of CORS rules around fetched assets). Test that too:
npx serve .
Then open `http://localhost:3000`. If the game works there, you’re ready.
Engine-specific exports
- Phaser/vanilla JS: The folder containing index.html and your scripts is the build.
- Unity: Build for WebGL. Unity produces a folder with index.html, a Build subfolder, and a TemplateData folder. Zip the whole folder.
- Godot: Export for HTML5. Godot produces five or six files (index.html, .wasm, .pck, .js). All must be in the zip.
- Construct 3: Use “Export → HTML5”. The resulting folder is your zip.
- GameMaker: Use the HTML5 export option (requires the HTML5 module license).
Step 2: Zip the build
itch.io needs a single zip file containing all your game files. Two rules:
- The `index.html` must be at the root of the zip, not inside a subfolder. (Many builds export with a wrapper folder; remove it before zipping.)
- File paths inside the zip must use forward slashes, not backslashes. Most zip tools handle this automatically, but Windows zip utilities have occasionally produced backslash paths that break on itch.io’s servers.
The fastest verification: open the zip and check that the top-level listing includes `index.html` directly.
Step 3: Create an itch.io account and project
Sign up at itch.io. Once you have an account, click the user dropdown in the top-right corner and choose “Upload new project.”
You’ll see a form with these fields:
- Title: Your game’s name.
- Project URL: Auto-generated from the title. Editable.
- Short description: A one-line tagline shown on listings.
- Classification: “Games” for nearly everything.
- Kind of project: “HTML” for browser-playable.
- Pricing: Free, paid, or pay-what-you-want.
- Uploads: Where the zip goes.
Step 4: Upload the zip
In the Uploads section, click “Upload files” and select your zip. After uploading, check the box that says “This file will be played in the browser.” This tells itch.io to extract the zip and serve the contents directly.
When you check that box, additional fields appear:
- Embed options: Set the canvas size (matching your game’s canvas size).
- Mobile friendly: Check if your game works on touchscreens.
- Frame options: Whether to show a “fullscreen” button below the embed.
- Orientation: Auto, landscape, or portrait (for mobile).
Set the embed dimensions to match your game’s canvas (e.g., 800×600 for a typical desktop game). itch.io’s embed will display exactly that size — too large clips, too small leaves dead space.
Step 5: Pricing
Three options:
- $0 or no payment: Free game. Anyone can play instantly.
- Pay what you want: Suggested minimum price; players can pay more or download free. Common for early projects.
- Paid: Fixed price. Players must pay before downloading or playing.
For browser games specifically, “free” or “pay what you want” is the norm. Players resist paying for a game they could click into a browser tab. Premium browser games exist but require a strong audience hook.
Revenue share
itch.io’s default revenue share is 10 percent to the platform, 90 percent to you. Notably, the creator can change this — even setting itch.io’s cut to 0 percent. The slider is on the project’s edit page. Most creators leave it at 10 percent as a way of supporting the platform.
Step 6: Metadata and discoverability
Metadata is what makes your game findable. Fill out everything.
- Cover image: 630×500 px. This is your storefront thumbnail. Make it readable at small sizes.
- Screenshots: 3-5 in-game shots. Show actual gameplay, not title screens.
- Description: Markdown supported. Write what the game is, how to play, what makes it interesting. Keep it tight.
- Genre: Pick one or two. Don’t over-tag.
- Tags: 5-10 specific tags. “platformer”, “pixel-art”, “speedrun”, etc. These drive search and discovery.
- Made with: The engine or framework. Phaser, Unity, Godot — be honest.
The description and tags are the single biggest discoverability lever. itch.io’s search and recommendation systems weigh both heavily. A well-tagged game with a clear description gets more impressions than an untagged game with a slightly better build.
Step 7: Visibility settings
Before publishing, choose visibility:
- Draft: Only you can see the page. Use this while you’re still polishing.
- Restricted: Only people with the direct link can access it.
- Public: Listed on itch.io, indexed by search, eligible for browse feeds.
Start in Draft. When the page is complete and you’ve tested the embedded play, switch to Public.
Step 8: Test the embed
Once your project is public (or even in Restricted), open the URL and test the in-browser play. Common issues:
- Game doesn’t load. Check that index.html is at the zip root. Check the browser console for asset 404s.
- Game loads but assets are missing. Path issues. Make sure all asset paths in your code are relative, not absolute (`./assets/player.png`, not `/assets/player.png`).
- Audio doesn’t play. Most browsers require user interaction before playing audio. Ensure your game doesn’t auto-play sound on load.
- Game is clipped. The embed size doesn’t match your canvas. Edit the project, adjust embed dimensions, re-save.
- Performance is bad in the embed. The iframe adds minimal overhead. If it’s slow on itch.io and fast locally, your game is hitting CPU limits. Profile and optimize.
Step 9: Promotion
Once your page is live, it doesn’t auto-promote itself. Share the URL on:
- itch.io’s own Devlog feature — write a short post on your project page about what you built.
- r/WebGames and r/IndieGaming on Reddit.
- The Phaser community Discord (if Phaser), the Godot Discord, etc.
- Twitter/X with screenshots and the #screenshotsaturday tag.
- itch.io game jams — submit your game to active jams to get eyes on it.
Jams are the highest-leverage promotion path on itch.io. A modest jam entry can pull in hundreds of plays from the jam page alone, plus rating and feedback from fellow participants.
Step 10: Updating the game
To push a new version, upload a new zip on the same project page. Optionally check “delete previous file” on the old upload. The embed updates to use the latest file automatically.
Keep release notes in your project’s Devlog so players know what changed. itch.io subscribers will see your devlogs in their feeds.
itch.io’s history
itch.io was founded in 2013 by Leaf Corcoran as a personal side project for hosting indie games. It grew into the dominant indie game distribution platform alongside Steam, particularly for non-commercial, jam, and experimental work. For more on the platform’s growth, see our history of itch.io piece and the official itch.io Wikipedia article.
Frequently asked questions
Does itch.io charge to publish a game?
No. Hosting is free for both free and paid games. itch.io’s default revenue share on paid games is 10 percent — and the creator can change that share, including down to zero.
What file format does itch.io want for HTML5 games?
A zip file containing all game assets, with index.html at the zip root (not inside a subfolder). Most game engines export to a folder; you zip the folder’s contents, not the folder itself.
Can my game be free on itch.io?
Yes. Set the price to $0 or “No payments.” Free games are the most common type on the platform, especially browser-playable ones.
Does itch.io support multiplayer browser games?
Yes — but you provide your own backend. itch.io hosts the static HTML5 files and runs them in an iframe. If your game needs a real-time multiplayer server, you’ll host that separately and your client connects to it from the embed.
How do I make my game discoverable on itch.io?
Fill out every metadata field, especially tags and genre. Submit to active game jams. Write devlogs. Share screenshots on social media. The platform’s search and recommendations favor complete listings; sparsely tagged games rarely surface.
The bottom line
Publishing on itch.io is the lowest-friction way to put a browser game in front of an audience. Zip your build, upload, fill metadata, set visibility to public — five steps and your game has a URL. From there, the work shifts to promotion and iteration. For a different kind of browser game distribution (no third-party platform, just a static page), the Chrome Dino game at the top of this site shows the alternative: self-hosted, no marketplace, accessible from any tab.








