What problem does it solve? Teams porting code to WebAssembly often discover the result is slower than the JavaScript it replaced, bloated in size, or insecure on the server. This Skill provides expert guidance on deciding whether a workload belongs in Wasm at all, designing the JS↔Wasm boundary correctly, and shipping small, fast, sandboxed modules in the browser and on server runtimes. ## Core Features & Use Cases - Boundary-First Design: Eliminates per-element JS↔Wasm call overhead by batching data into buffers, using memory views, and keeping hot loops inside the module. - Toolchain & Language Guidance: Covers Rust (wasm-bindgen), C/C++ (Emscripten), and Go, with honest assessment of each language's runtime and binary-size tax. - Server-Side WASI Sandboxing: Runs untrusted plugins on Wasmtime/Wasmer with least-privilege capability grants and the component model for typed interfaces. - Size & Performance Tuning: Applies wasm-opt, dead-code elimination, streaming compilation, SIMD/threads with feature detection, and linear-memory management. - Use Case: A team wants to speed up an image-processing pipeline in the browser. The Skill first benchmarks the JS baseline, then ports the codec kernel to Rust/Wasm with a single batched boundary crossing, shrinks the module under a size budget, and ships it with streaming compilation. ## Quick Start Ask the WebAssembly engineer to evaluate whether your workload fits Wasm and to design a batched JS-to-Wasm boundary for your hot loop.