Convertur
Engineering

Shipping WASM codecs without the bloat

TLTheo Lindqvist · May 27, 2026 · 9 min read

A WebAssembly codec can weigh several megabytes. Ship them carelessly and a “fast, local” converter becomes a slow, heavy page. Here’s how we keep first load under two seconds.

Load nothing until it’s needed

The landing page ships no codecs at all. Each decoder lives in its own dynamically-imported chunk, fetched only when you open the tool that uses it.

That keeps the common path — visiting the site — as light as a static page.

Trim the build

We compile codecs with size-optimised flags, strip debug info, and drop features we don’t use. A decode-only build of a codec is far smaller than the full encoder-plus-decoder.

Every kilobyte is measured in CI so a dependency bump can’t quietly regress load time.

Cache aggressively

Once fetched, a codec is cached with a content hash, so repeat visits and additional conversions are instant — and work offline.

TL
Theo LindqvistBuilds the WebAssembly conversion pipeline at Convertur. Cares far too much about first-load size.

Related posts