AppsinityAPPSINITY
Builds and uploads

Web game builds

A web game is a folder, not a file. It is uploaded asset by asset and served as a directory from storage, then played inside the store's own player frame.

Open Appsinity Studio

Export correctly

  • Produce a static folder whose entry point is index.html at the root.
  • The folder must contain that file or the upload stops with Web game folder must include index.html.
  • Relative asset paths only. An absolute /Build/game.data breaks, because the game is served from a deep storage path.
  • No path may climb out of the folder: Web game contains an unsafe file path.
  • Compression is welcome — .br and .gz names are handled by the extension test, and .unityweb, .wasm, .data, .mem, .pck all pass the folder rules.
Watch out: Server-side routing is not configurable. If your engine needs COOP/COEP headers or a service worker scope, test it from the storage URL before you advertise the game as playable.

Uploading the folder

The picker takes the whole folder. Each asset is presigned and PUT sequentially — not in parallel — and the progress bar reports cumulative bytes for the folder. The one visible label during this is Preparing web game.

  • Every asset is re-checked against the denylist; a single blocked file fails the set.
  • The browser enforces a 5 GiB total for the folder; the worker only enforces 5 GiB per file.
  • A web-zip upload sends no version, so the key defaults to draft.
  • There is no resume. Closing the tab mid-folder restarts the whole folder.
key layout:  games/{gameId}/web/{version}/{relPath}
served root: https://storage.appsinity.com/public/games/{gameId}/web/{version}/

How it plays on the store

A web listing's primary button reads ▶ Open Now rather than Download Now. Adding ?play or ?stream to the listing URL opens the player automatically, which is what you send to players and what you use for a live demo.

  • The player frame offers Mute, Settings, Record, Stream, Leaderboard, Monitor, Hide, Expand, Landscape, New tab and Close.
  • On a phone in portrait the rotate hint appears: Rotate your device.
  • The Monitor panel closes with Everything stays in your browser.
  • Sessions are counted by the play endpoints, so the leaderboard is per-game rather than global.

Scores and sessions

Web play has a leaderboard endpoint returning the top 20 scores, and the Studio play routes read session records. That is the whole social layer: no friends, no teams, no clubs.

If your game stores progress locally, say so in the description. Players on a phone browser lose it when the origin storage is cleared, and they will blame the listing.

Not available: There is no cloud save service provided by Appsinity. Cross-device progress requires your own backend, and the dateOfBirth-style identity of a store account is not exposed to your game.

Frequently asked questions

Can a web game also be downloadable?

The chain resolves to one URL. Publish the web build or a native build; a listing that points at a folder root will not behave like an installer.

What is the practical size limit for a browser game?

5 GiB is the enforced ceiling, but a browser game over roughly 100 MB will fail to hold a mobile audience regardless of what Appsinity accepts.

Does the store add its own code into my game?

No. The frame around it is the player UI; your page runs inside it.

Need help?

Developer publishing support: [email protected]
General support: [email protected]
Partnerships: [email protected]