A Godot 4 export with GL Compatibility renderer, Jolt physics, GDScript, and Ink runtime compiles to 35MB WASM, less than python:3.14-slim-trixie before any deps.
Key Takeaways
Godot 4 full 3D engine WASM artifact: 35MB. python:3.14-slim-trixie: 144MB. node:latest: 421MB. A Python AI agent: 1.45GB.
Facebook’s homepage loads 44MB across 379 requests – the full Godot engine binary is smaller.
Go (livekit at 75MB) is the closest Docker competitor, but wasip1 lacks sockets and threads, blocking WASM server adoption.
Practical WASM server targets today require Rust or C/C++; Zig is close but not production-ready. Cloudflare Workers, runwasi, and kwasm exist but haven’t shifted defaults.
The author draws a parallel to ARM nodes: 10x size advantage existed for years before ARM became standard practice.
Hacker News Comment Review
Commenters challenged the comparison directly: Docker images bundle a full OS and libs; the WASM blob depends on a browser, which depends on Chrome (~404MB installed) and GPU drivers – the runtime cost is just shifted, not eliminated.
On the WASM side, the 35MB figure is not a floor. Unity IL2CPP via Emscripten reaches ~3MB; hand-coded C99 WASM games run under 107KB uncompressed. Godot 3 outputs were reportedly 2-3x smaller.
The “runs in any browser” claim drew a concrete failure report on Chrome 148 / Fedora 44 with a 4090 RTX: WebGL2 not available, engine refuses to load.
Notable Comments
@Tsarp: Rust binary in a scratch Docker image can ship under 5MB; same project’s WASM build is under 1MB – undercuts the framing that Docker is inherently bloated.
@AshleysBrain: Construct game engine exports ~300KB by targeting web APIs natively and tree-shaking unused components, avoiding shipping a heavyweight runtime entirely.