Guides

How to host an HTML game for free: 6 options compared

Updated September 24, 2026 · 8 min read

Short answer

For a single HTML file, the quickest free options are uploading it to Joystumble or itch.io (they host it and bring players) or dragging the folder into Netlify Drop. If you want your own URL and full control, use Cloudflare or GitHub Pages. All of them are free for a typical small game.

A browser game is just files: an index.html, maybe some JavaScript, images, and sounds. Hosting it means putting those files on a server that hands them to anyone who visits a URL. That used to cost money. Today it's free for almost any small game.

The options at a glance

OptionSetupYour own domainBrings players
Joystumble uploadDrop one fileNoYes
itch.ioZip and uploadNo (yourname.itch.io)Some
NetlifyDrag and drop a folderYesNo
CloudflareConnect a repo or use the CLIYesNo
GitHub PagesPush to a public repoYesNo
VercelConnect a repo or use the CLIYesNo

1. Joystumble: upload and get players

On the submit page, choose "Upload a file" and drop in a single .html file, or a React .jsx/.tsx file like the ones Claude makes. We host it, show you a live preview, and put it in front of players who stumble onto games. It's the least work, but it's one file (up to 5 MB) with everything inlined or loaded from a CDN, not a whole folder.

2. itch.io: a permanent game page

  1. Zip your game folder with index.html at the top level of the zip.
  2. Create a new project and set the kind to HTML.
  3. Upload the zip and tick the option to play it in the browser.
  4. Set the viewport size and whether it has a fullscreen button.

You get a game page with comments, devlogs, and optional payments. The game runs inside itch.io's page, so other sites usually can't embed it.

3. Netlify: drag and drop

Netlify Drop lets you drag a folder onto a web page and get a live URL in seconds, no command line. Create a free account to keep the site and update it later. You can add a custom domain and custom headers with a _headers file.

4. Cloudflare: fast and very generous

Cloudflare can serve a folder of static files from its global network. Connect a GitHub repo and it redeploys on every push, or deploy from your terminal:

npm create cloudflare@latest my-game
# or, from a folder that has your index.html:
npx wrangler deploy --name my-game --assets . --compatibility-date 2026-09-01

You get a free *.workers.dev or *.pages.dev URL and can attach your own domain. Its free tier comfortably covers a small game going viral.

Watch out: if your file has no <meta charset="utf-8"> tag, symbols like — and → can show up as garbled text (—). Add the tag to the top of your HTML, or set the header Content-Type: text/html; charset=utf-8.

5. GitHub Pages: free and simple

  1. Create a public repository and add your index.html.
  2. In the repo settings, open Pages and choose to deploy from your main branch.
  3. Your game appears at yourname.github.io/repo-name after a minute.

Great if you already use Git. You can't set custom HTTP headers, but the defaults work fine for most games.

6. Vercel

Similar to Netlify and Cloudflare, popular with people who build with React and Next.js. Connect a repo and every push deploys. The free Hobby plan is meant for personal, non-commercial projects.

Which should you pick?

You can do more than one. Host it on your own URL, then list that URL on Joystumble, itch.io, and everywhere in our where to share your web game guide.

Make sure other sites can show your game

Discovery sites and portals show your game inside their page using an iframe. Some hosts and frameworks block that by default. If a site says your game "can't be embedded", see why your game won't load in an iframe.

FAQ

What is the easiest way to put an HTML game online?

Upload the file to a site that hosts games for you, like Joystumble or itch.io, or drag the folder into Netlify Drop. None of these need a command line.

Is free hosting enough if my game gets popular?

For a static game (just files, no server), usually yes. Cloudflare, Netlify, and GitHub Pages all serve static files from global networks with generous free limits.

Can I use my own domain for free?

Cloudflare, Netlify, GitHub Pages, and Vercel all let you attach a domain you own on their free plans. You still pay for the domain itself.

Why does my game show strange characters like — after uploading?

The page is missing its character encoding. Add <meta charset="utf-8"> at the top of the HTML, or have the host send Content-Type: text/html; charset=utf-8.