For developers

Publish your game — playable in the browser

Made a game in Unity, Godot or Three.js? Export it as a web build (WebGL/HTML5), zip the folder so `index.html` sits at the root, and upload it from your browser. You get back a link that plays instantly — no download, no install, no approval queue. Every account gets 300 MB of free hosting.

Last updated:

Ready to upload?

Create your game page, then upload your web build — hosting is free and needs no credit card.

What you get at the end

An instant-play link

One link you can share anywhere — a stranger clicks and is playing in seconds, no download.

An embeddable iframe

Drop the game into your own site, blog or campaign page with a single line of HTML.

A card that plays inside X

Share the play link on X and the card plays inline in the timeline (twitter:player).

See a real one: a game published on the platform

By engine

Any engine that exports a static folder with an index.html works. Here are the specifics.

UnitySupported — build for the WebGL platform
  1. Switch platform: File → Build Settings → WebGL → Switch Platform.
  2. Set compression: Project Settings → Player → WebGL → Compression Format = Brotli.
  3. Build. You get a folder containing index.html and a Build/ subdirectory.
  4. Zip that folder — index.html must sit at the archive root, or one folder deep. No deeper.
  5. Ship the build output only — not your project or source assets. The cap is 1,000 files.

If your Unity template already outputs .br files, you can skip the CLI's --precompress flag. Either way works.

GodotSupported — export for Web (HTML5)
  1. Project → Export → Add… → Web.
  2. Export into an empty folder and name the main file index.html. If you name it something else (say game.html), type that same name into the "Entry point" field when you upload.
  3. Zip every exported file together (.html, .wasm, .pck …) into one archive.
  4. Do not enable thread support (SharedArrayBuffer) — a build that depends on it will not run here.

We don't document Godot's internal export-preset options — check the official Godot docs for those.

Three.js · Babylon.js · HTML5Supported — any static folder with an index.html
  1. Build your project for production (e.g. npm run build).
  2. Make sure index.html is at the root of the output folder and all asset paths are relative.
  3. Zip the output folder and upload it.

If it runs on a plain static file server, it runs here — it is exactly the same thing.

Unreal EngineNot supported — Unreal dropped HTML5 export
  1. Unreal removed official HTML5 export in 4.24 (2019), so in practice there is no WebGL build to upload.
  2. Instead: publish a downloadable build on your project page, or add a trailer and screenshots.

Two ways to upload

From the browser

Easiest for a first upload — drag and drop.

  1. 1

    Create the game page

    A build attaches to a project, so you need one first. Takes a minute.

  2. 2

    Export a web build from your engine

    Unity: the WebGL platform. Godot: the Web export. Anything else: a static folder with index.html at the root.

  3. 3

    Zip the folder

    index.html must be at the archive root, or one folder deep. Up to 500 MB.

  4. 4

    Drag it onto the upload page

    Your quota is shown before you pick a file. We extract it and serve it from a CDN automatically.

  5. 5

    Hit Publish

    You get an instant play link and an embed snippet — ready to share.

From the CLI

For repeat deploys and CI.

  1. 1

    Create an API key

    At /profile/api-keys, granting the deploy scopes: webgl:upload, webgl:deploy, webgl:read, project:read. The key is shown exactly once.

  2. 2

    Log the CLI in

    The CLI validates the key against the server immediately.

    tgn auth login tgn_k1_xxxxxxxx
  3. 3

    Deploy the build

    One command: package, upload, extract, activate. --precompress cuts the payload 3–5×.

    tgn deploy ./Builds/WebGL --precompress
Create an API key →

The limits

Free quota300 MB per account
Max archive500 MB
After extraction1,000 files / 1 GB
Versions kept10 per game
Entry pointindex.html at the root (overridable)
Rejected files.exe .bat .cmd .sh .ps1 .dll .msi .com .scr .vbs

Full hosting details and how it compares: Free WebGL hosting

Frequently asked questions

How do I upload a Unity game to the web?

Switch the platform to WebGL in Build Settings, set Compression Format = Brotli under Project Settings → Player, and hit Build. You get a folder with index.html and a Build/ subdirectory. Zip it and upload it from the publish page — or run tgn deploy from the CLI. Once published you have a link that plays in the browser instantly.

How do I upload a Godot game?

Use the Web (HTML5) export under Project → Export. Export into an empty folder and name the main file index.html (or change the "Entry point" field at upload time to match whatever you named it), then zip every exported file together and upload. Don't enable thread support — a build that relies on SharedArrayBuffer will not run.

Does it work with Unreal Engine?

No. Unreal removed official HTML5 export in version 4.24 back in 2019, so in practice there is no WebGL build to upload. If your game is on Unreal, publish a downloadable build on your project page instead.

What has to be inside the .zip?

Your whole web-build folder. The only hard rule is that index.html sits at the archive root or one folder deep — no deeper. Executables are rejected (.exe .bat .cmd .sh .ps1 .dll .msi .com .scr .vbs), and server-side scripting (Node, Python) isn't supported: static, client-side builds only.

What are the size limits?

The free quota is 300 MB per account (shared across all your games). A single archive can be up to 500 MB, and after extraction it may contain at most 1,000 files totalling 1 GB. Up to 10 versions are kept per game.

What do I get once it's published?

Three things immediately: a shareable instant-play link, an iframe snippet to embed the game on any site, and a card that plays inline when you share the link on X. You can upload a new version any time and roll back in one click.

Do you take a revenue share or ask for exclusivity?

No. We take no cut and ask for no exclusivity. Your game is yours — ship it on itch.io, Steam or your own site at the same time.

Start now

300 MB free, 10 versions per game, no credit card and no exclusivity.

Browse all articles →