Pragmatic AI Labs

WASM from Zero

Noah Gift

Instructor: Noah Gift

Included with Coursera Plus

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

5 hours to complete
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

5 hours to complete
Flexible schedule
Learn at your own pace

What you'll learn

  • Compile Rust to WebAssembly and render to the HTML5 canvas with a deterministic Canvas2DRenderer

  • Build Elm-style components with update/view, then compose them with a small router into a multi-screen app

  • Package with wasm-pack and verify VDOM behavior against committed snapshot fixtures for byte-identical CI runs

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

May 2026

Assessments

1 assignment

Taught in English
91% of learners achieved a positive career outcome

See how employees at top companies are mastering in-demand skills

 logos of Petrobras, TATA, Danone, Capgemini, P&G and L'Oreal

Build your subject-matter expertise

This course is part of the Rust for Data Engineering Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 5 modules in this course

Covers the HTML5 canvas element as a 2D raster surface, every draw is immediate-mode, Canvas2D vs WebGL vs WebGPU, Canvas2DRenderer wraps a web_sys::CanvasRenderingContext2d and exposes the same draw API as the terminal renderer, and every method takes an aprender_present_core::Color and a Rect, not raw f64s.

What's included

6 videos6 readings

Port the Elm-style init / update / view shape from the terminal app to the browser without changing its meaning. State lives in WebAssembly linear memory, update is the single mutator, and view returns a Virtual DOM. Then plug the loop into the browser by treating requestAnimationFrame as the event loop, using a dirty flag to keep view at-most-once-per-frame, and storing every JS closure in a Vec so App::unmount drops them with zero leaks.

What's included

6 videos4 readings

What's included

6 videos4 readings

Bundles the WASM artifact for production and verifies behavior without launching a real browser. Covers the wasm32-unknown-unknown Rust target, wasm-bindgen as the JS<->Rust bridge, and the presentar-cli serve command for local hosting. Then introduces Probar, a deterministic VDOM-snapshot harness: stringify a virtual DOM tree, compare against a golden inline string, and assert correctness with zero headless-browser dependencies.

What's included

6 videos4 readings

Tie everything together by building wasm-dash, a real-time system dashboard rendered entirely in WebAssembly. Compose every prior module — Canvas2D rendering, Elm-style update/view, components, charts, and the router — into one screen. Use a committed snapshot fixture for zero-panic determinism, a short pure view() composing earlier widgets, and a six-demo gallery that proves WASM-from-Rust handles real interactive workloads.

What's included

3 videos6 readings1 assignment

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Instructor

Noah Gift
Pragmatic AI Labs
58 Courses3,782 learners

Offered by

Explore more from Software Development

Why people choose Coursera for their career

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Frequently asked questions