Skip to content
Tech News
← Back to articles

Docker images are hundreds of MB; a full game engine compiles to 35MB WASM

read original get Docker Container Storage Guide → more articles
Why This Matters

This article highlights the significant size advantage of WebAssembly (WASM) for deploying complex applications like game engines, which can run in browsers with minimal footprint compared to traditional Docker images or server binaries. This size efficiency could revolutionize deployment strategies, making web-based applications more accessible and reducing infrastructure costs. However, widespread adoption faces challenges due to current limitations in runtime support and ecosystem maturity.

Key Takeaways

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