Publishing a Game on itch.io
itch.io is the most popular indie game platform for browser-playable games, with a community that actively seeks out and supports independent developers. Unlike portals that require SDK integration and content review, itch.io lets you publish on your own terms with full control over pricing, page design, and distribution. The following steps walk you through the complete process from build preparation to post-launch promotion.
Prepare Your Game Build
Your HTML5 game needs to be a self-contained set of files with an index.html file as the entry point. This is the file itch.io loads when a player clicks play. If your game engine exports to a different filename, rename it to index.html before uploading. The build should include all JavaScript, CSS, images, audio, and any other assets the game needs, with all paths referenced as relative paths so the game works regardless of where it is hosted.
Compress all your game files into a single ZIP archive. itch.io accepts ZIP files up to 1 GB in size, though for browser games you should aim to keep the total under 50 MB for reasonable load times. Games built with Unity WebGL often produce builds in the 20 to 40 MB range after compression, while Phaser or vanilla JavaScript games typically come in well under 10 MB. If your build is unusually large, check for uncompressed textures, unused audio files, or debug builds that include source maps and development tooling.
Before uploading, test the build locally by opening index.html from a local web server. Do not open it directly as a file:// URL, because browser security policies block certain features (like audio loading and fetch requests) when running from the filesystem. A quick local server using Python (python -m http.server 8000) or the Live Server extension in VS Code will confirm the game runs correctly before you upload it.
Create the Project Page
Log into your itch.io account (or create one if you do not have one yet) and navigate to the Dashboard. Click "Create new project" to start a new game page. Set the project title to your game's name, and in the "Kind of project" dropdown, select "HTML." This tells itch.io that your upload is a browser-playable game rather than a downloadable application.
In the uploads section, click "Upload files" and select your ZIP archive. After the upload completes, check the checkbox labeled "This file will be played in the browser." This is the critical setting that enables the browser embed. Without it, itch.io treats the ZIP as a downloadable file and players will have to download and extract it manually, which defeats the purpose of publishing an HTML5 game.
If your game requires specific browser APIs like WebGL 2, WebGPU, Web Audio, or gamepad input, note these in the game description so players on incompatible browsers understand why the game might not work for them. itch.io does not filter players by browser capability, so your game page should set expectations clearly.
Configure Page Settings
Set the viewport size to match your game's native resolution. itch.io provides width and height fields that control the dimensions of the iframe embed on your game page. Common sizes include 960x540 for 16:9 widescreen, 800x600 for 4:3, and 480x800 for portrait-oriented mobile games. If your game is responsive and fills whatever container it is given, you can enable the "Fullscreen button" option and use a default viewport size that works well as a starting point.
Choose your pricing model. itch.io offers four options: free (no payment), paid (set a minimum price), donation (suggested price but playable for free), and "no payments" (completely removes the payment widget). The "donation" model is popular for browser games because it lets everyone play while giving appreciative players an easy way to support you. Set a suggested donation amount that reflects the game's scope, typically between one and five dollars for a polished browser game.
Write a compelling game description that explains what the game is, how to play it, and what makes it interesting. Include a controls reference, especially for keyboard-controlled games where the key bindings might not be obvious. Add at least one cover image (the recommended size is 630x500 pixels) and two or three screenshots that show actual gameplay. The cover image appears in search results and recommendation feeds, so it has a direct impact on click-through rates.
Set Visibility and Tags
Tags are how players discover your game through itch.io's browse and search features. Add tags for the genre (platformer, puzzle, strategy, horror, etc.), the technology (HTML5, WebGL, Phaser, Unity), the input method (keyboard, mouse, touch, gamepad), and any distinctive features (procedural generation, multiplayer, pixel art, roguelike). itch.io allows up to 10 tags per project, and using all 10 with specific, relevant tags maximizes your visibility in filtered browse results.
Set the content rating accurately. itch.io uses a simple system with options for content advisories including violence, sexual content, and strong language. Setting this accurately protects you from content complaints and helps parents and educators identify appropriate games. Most browser games fit comfortably in the general audience category.
Enable community features if you want player engagement beyond just playing the game. itch.io offers a built-in comment system, a community forum for your project, and devlog functionality. Devlogs are especially valuable for building a following, because itch.io notifies your followers whenever you publish a new devlog entry, bringing players back to your page and keeping your game visible in the platform's activity feeds.
Test and Launch
Before making the page public, use the "Preview" function to see exactly what players will experience. Click the play button on the preview page and verify that the game loads completely, renders at the correct size, accepts input, and plays audio. Test in at least two browsers (Chrome and Firefox are the most important) and check mobile behavior if your game supports touch input.
Common issues at this stage include incorrect viewport dimensions (game appears cropped or has excessive borders), missing assets (files not included in the ZIP or referenced with wrong paths), CORS errors (if the game tries to load resources from external URLs), and audio not playing (browsers require a user interaction before playing audio, so make sure your game handles the audio context resume correctly). Fix any issues by updating your build, re-zipping, and uploading the new version.
When everything works, change the visibility setting from "Draft" to "Public" and save the page. Your game is now live and accessible to anyone with the URL. itch.io will also begin including it in search results and browse feeds based on your tags and category settings.
Promote After Launch
Publishing the game is only half the work. itch.io has thousands of games, and new releases quickly scroll off the front page unless they gain traction. The most effective promotion strategy on itch.io is submitting to game jams. Browse the upcoming jams calendar, find jams that match your game's genre or theme, and submit your game. Jam participants actively play and rate submissions, and a strong showing in a popular jam can generate hundreds of plays and dozens of ratings in a single week.
Share your game on developer communities like r/webgames, r/indiegaming, the itch.io community forums, and relevant Discord servers. Write a devlog entry about the development process, interesting technical challenges, or design decisions, because devlogs perform well in itch.io's feed algorithm and are more likely to be shared than a bare game link. Cross-link your itch.io page from your personal website, social media profiles, and any other web presences to build inbound links that improve the page's search visibility both within itch.io and on external search engines.
itch.io is the fastest path from a finished HTML5 game to a playable, discoverable web page, and its combination of browser embedding, flexible pricing, and active community makes it the strongest platform for indie web game developers who want both creative control and organic discovery.