THE HOME FOR YOUR NEXT GAME

Build it.
Play it.
Bring a crowd.

Wasanni is the developer platform for hosting browser games and building the competitive world around them.

PUBLIC BETA · NO CREDIT CARD · YOUR GAME, YOUR PLAYERS

PLAYABLE
IN A URL
wasanni.com/play/0194…c22/0194…f31/index.htmlLIVE
SCORE18,420
TIME01:42
DRIFT
KINGS
PRESS TO PLAY
ONE BUILD
ENDLESS
POSSIBILITIES
HOST THE BUILD✳RUN THE SESSION✳START THE COMPETITION✳HOST THE BUILD✳RUN THE SESSION✳START THE COMPETITION
FROM BUILD TO BATTLE

Everything your game needs
after the export.

Skip the week of wiring. Wasanni gives your game a place to live, a way to compete, and a reason for players to come back.

01

Put it online

Upload a Godot, Unity WebGL, or HTML5 build. Get a versioned play URL without standing up hosting yourself.

02

Make it a game

Open sessions against your own user IDs, send scores through an API built for browser games, and get back the verdict each one earned.

03

Build the scene

Leaderboards, tournaments, replays, and signed webhooks turn a playable build into a place people return to.

THE DEVELOPER LOOP

Your build in.
Your world out.

Deploy a versioned bundle, get a URL, and call the platform from the game you already made. The key stays on your server. The player stays yours.

Create a workspace
deploy.mjsWASANNI API
const api = "https://api.wasanni.com/api/v1";

// 1. ask for an upload target for the build
const { file, upload } = await fetch(`${api}/organizations/${org}/games/${game}/files/upload`, {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    filename: "drift-kings.zip",
    version: "1.4.2",
    contentType: "application/zip",
    sizeBytes: zip.length,
  }),
}).then((r) => r.json());

// 2. the bytes, then confirm, then publish
await fetch(upload.url, { method: "PUT", body: zip });
await fetch(`${api}/games/${game}/files/${file.id}/complete`, { method: "POST" });
await fetch(`${api}/games/${game}/publish`, { method: "POST" });

→ wasanni.com/play/{gameId}/{fileId}/index.html
DEPLOYED IN YOUR WORKSPACE ● PLAY URL READY

Deploy the build. Call the game.

Your team owns the game and the player account. Wasanni handles the hosted build, short-lived play sessions, realtime connection, and competition state through plain HTTPS. Every score comes back with the verdict computed against it, so a board you can defend is one POST away. If you can send a POST, you can put a game online.

1

Create your workspace

Add the platform your game runs on and mint its key. The dashboard is your developer control room.

2

Deploy a build

Ask for an upload target, PUT the bundle, confirm it, publish it. It comes back as a /play URL for that exact build.

3

Put on a referee

Per mode: trust the number, call back your own verifier, or read the score off the attached frame. The verdict is stored with the score.

4

Run the competition

Register players by your own user IDs. Sessions, scores, leaderboards, brackets, and replays fill themselves in.

# 1. ask the dashboard for an upload target
curl -X POST https://api.wasanni.com/api/v1/organizations/$ORG_ID/games/$GAME_ID/files/upload \
  -b "$DASHBOARD_SESSION" \
  -H "content-type: application/json" \
  -d '{
    "filename": "drift-kings.zip",
    "version": "1.4.2",
    "contentType": "application/zip",
    "sizeBytes": 41843332,
    "kind": "bundle",
    "entryPoint": "index.html",
    "crossOriginIsolation": true
  }'

# 2. PUT the zip to target.upload.url, with target.upload.headers
curl -T dist/drift-kings.zip "$UPLOAD_URL"

# 3. confirm the file, publish the game
curl -X POST .../games/$GAME_ID/files/$FILE_ID/complete -b "$DASHBOARD_SESSION"
curl -X POST .../games/$GAME_ID/publish -b "$DASHBOARD_SESSION"

# the build is live at https://wasanni.com/play/$GAME_ID/$FILE_ID/index.html

Spec sheet

Builds
A zip bundle or a single file, up to 5 GB, versioned by you
Engines
Godot, Unity WebGL, HTML5 — anything that runs in a browser tab
Play URL
/play/:gameId/:fileId/*, served with the headers threaded builds need
Auth
One API key per platform on your server; short-lived session tokens on the client
Players
Your user IDs. We never own the account.
Verification
None, your HMAC-signed callback, or a frame read against the submitted number
Referee
A verdict you can read: every score carries its status and the reason it earned
Honesty
A slow referee costs you no rank. The player is not punished for the referee
Data
Every score keeps the flags computed against it; nothing is deleted to hide it
DRIFT KINGS / PIXEL CUP

THE RACE IS ON

OPEN
LEADERBOARDBRACKETREPLAYS
01T
TundePERSONAL BEST
12,840
02A
AdaNEW RECORD
11,920
03K
KaiLAST RUN · 2M AGO
10,540
04N
NoorPERSONAL BEST
9,870
6 PLAYERSBEST SCORE PER PLAYER● SYNCED
MAKE IT A SCENE

A playable game is good.
A living game is better.

Sessions, verified scores, leaderboards, tournaments, and replays come from one API. Give players a reason to chase the next run.

✓ Verified scores✓ Bracket tournaments✓ Replay-ready sessions✓ Signed webhooks
MADE FOR THE PEOPLE SHIPPING

Pick your
starting line.

FOR GAME MAKERS

Ship the game, not the plumbing.

Keep your engine, code, and player accounts. Wasanni handles the hosted build and the competitive layer around it.

FOR GAME PLATFORMS

Give every game a scene.

One integration for the catalog: shared identity, sessions, verified scores, brackets, and replays across your games.

YOUR NEXT BUILD STARTS HERE

Make something
worth returning to.

Host the game. Ship the scene. Wasanni is in public beta.

Start building for free