Skip to content

WebAssembly — From Zero to Hero

A standalone, beginner→advanced course on WebAssembly. Write WAT and watch it compile and run in your browser, master JS interop and linear memory, then compile real languages to Wasm and go beyond the browser with WASI.

Intro: What is Wasm?

The stack machine, why & where Wasm runs, your first module. Start →

The WAT Text Format

Modules, funcs, value types, locals & the stack, arithmetic. Write WAT →

Control Flow & Functions

Blocks, branches, loops, if/else, calls & recursion. Branch →

JS Interop & Loading

instantiate, imports & exports, streaming, number marshalling. Interop →

Linear Memory & Data

The shared ArrayBuffer, typed-array views, passing strings, growing. Memory →

Languages to Wasm

Rust (wasm-bindgen), C (Emscripten), AssemblyScript, choosing one. Compile →

Tooling

wabt, Binaryen (wasm-opt), inspecting & optimizing .wasm. Tools →

WASI & Beyond the Browser

WASI, wasmtime/wasmer, the component model, real-world use cases. Go further →

Runs in your browser

Write WAT and click Run — it compiles to Wasm and executes right here, with real output. No install.

Diagrams that explain

The stack machine, caching of the compile→instantiate flow, and memory layout as Mermaid diagrams.

Real toolchains

Compile Rust, C, and AssemblyScript to Wasm — open runnable AssemblyScript projects in StackBlitz.

Bilingual + read mode

English and ไทย, quizzes with saved progress, and a distraction-free read mode.