I exported a game skeleton to WebAssembly a few hours ago and was surprised by the artifact size. Full 3D engine – GL Compatibility renderer, Jolt physics, GDScript runtime, Ink narrative interpreter. The binary: 35MB. Runs in any browser, zero install.
Facebook’s homepage loads 44MB. The game engine is 35MB.
# Try it
Fullscreen, WASD, Esc.
# The thing that weighs less than a base image
python:3.14-slim-trixie – the slim base, before you add a single dependency – is 144MB. Even a careful minimal build with uv lands at 282MB.
Sizes from my browser and local Docker cache:
Item Size Google homepage (all resources, 43 requests) 10MB this game (Godot 4, full engine) 35MB Facebook homepage (all resources, 379 requests) 44MB livekit/livekit-server (Go, WebRTC) 75MB python:3.14-slim-trixie 144MB python:3.14-slim-trixie + minimal deps 282MB REST API from my job 300–400MB node:latest (19M pulls/week) 421MB ghcr.io/gohugoio/hugo 423MB Python-based AI agent from my job 1.45GB
Hugo: 423MB to generate static HTML. The game engine is 35MB 😌
The Go binaries (livekit at 75MB) are already close.
... continue reading