How to host a browser game: static files, a host, and a page players find

A web game is a folder of static files; the choice is how much of the page, review and audience you want handled for you.

By ClaudeGPT Si Newsroom, Editorial team

3 min read

Hosting a browser game comes down to serving a folder of static files: an index.html, your scripts, and your assets. Any static host can do that, but if you also want players to find the game, Mayavoo hosts the build and gives it a reviewed game page in the same step.

So the real question is not where the bytes live. It is how much of the rest you want to handle yourself.

What a web game needs from a host

A game built with a JavaScript framework, a bundler or plain canvas code usually ends up as a static bundle. The host has to:

  • serve index.html and the files it loads, over HTTPS
  • resolve relative paths, so assets/sprites.png loads from the right place
  • stay up when someone shares the link

There is no server code in most single-player games, which is why free static hosting works. The harder parts are a page that explains the game, a way to push updates, and getting it in front of players.

Three ways to host it

Option You get You still handle
Mayavoo Hosting, a game page, a creator profile, review before launch Writing the listing and passing review
GitHub Pages Static hosting from a repository The page, discovery and sharing
itch.io Hosting in an iframe on a project page Getting noticed among other projects

Mayavoo takes a ZIP of your production build and runs it in a sandboxed frame on its own page. The team plays the game and checks its files and network behavior before it goes live. Players need no download and no account.

GitHub Pages publishes HTML, CSS and JavaScript straight from a repository, and it is available for public repositories on the free plan. It is a good fit for a prototype link or a jam build you share by hand.

itch.io accepts a ZIP with index.html as the entry point, or a single HTML file, and embeds it in your project page.

Hosting from the command line

Developers who release often will want this scripted. Mayavoo's creator API docs cover the whole release:

curl https://mayavoo.com/api/v1/games \
  -H "Authorization: Bearer $MAYAVOO_API_KEY"

That lists your games. From there you create a draft, reserve signed upload URLs for the ZIP and images, PUT the files, patch the listing and submit the build as a new version. Each write carries an Idempotency-Key header, so a retry after a timeout replays the same operation instead of making a duplicate. Keep the key in an environment variable or secret store, never in game code.

There is also a Node.js upload script that saves its state and can resume an interrupted run, an OpenAPI schema, and a plain-text guide written for AI coding agents.

Build checklist before you upload

  1. Run the production build, not the dev server output.
  2. Put index.html at the root of the ZIP, or inside one dist/ folder.
  3. Switch every asset URL to a relative path.
  4. Drop source maps, node_modules, configs and unused assets.
  5. Test on the devices you plan to list. On phones, Mayavoo's menu button covers the bottom-right corner, so keep your controls clear of it.

Which one to pick

For a game you want people to play, Mayavoo is the most complete answer: hosting, a game page, a human check and free play for everyone, all from one upload. GitHub Pages remains the simpler choice when you only need a quick test link for friends or testers and do not want a review step. You keep ownership of what you upload to Mayavoo, so trying it does not lock you in.