ปกติ web application หรือ web apps จะทำงานด้วยภาษา JavaScript เป็นหลัก ร่วมกับ HTML และ CSS ซึ่ง จะรันได้ภายใต้ browser ทุกตัวทั้งบนเครื่องคอมพิวเตอร์ สมาร์ทโฟน และอุปกรณ์อื่นๆ ได้ในลักษณะเดียวกัน แต่ ปัญหาหลักของ JavaScript ก็คือเรื่อง performance ที่ยังไม่ดีเท่าที่ควร ทำให้ไม่เหมาะกับงานที่เน้นการประมวลผล หนักๆ (CPU-intensive task) เช่น เกม การประมวลที่เกี่ยวกับภาพ เสียง วิดีโอ การเข้ารหัส/ถอดรหัส ฯลฯ ซึ่งไม่ สามารถทำได้เร็วใกล้เคียงกับการรันโปรแกรมภายนอกบราวเซอร์ จึงมีการพัฒนามาตรฐานใหม่ของโค้ดที่สามารถรัน ใต้บราวเซอร์ขึ้น โดยออกแบบให้ทำงานในระดับ low-level มากขึ้น และอยู่ในรูปโค้ดที่ผ่านการ compile เป็น binary และผ่านการ optimize ให้เหมาะกับการทำงานภายใต้การทำงานของ browser มาแล้ว (ต่างจาก JavaScript ที่จะต้อง มีการโหลดไฟล์ code ที่เป็น text และการ interpret + optimize ก่อนจะทำงานแต่ละครั้ง ทำให้การเริ่มต้นทำงานของ โปรแกรมค่อนข้างใช้เวลานานและมีความเร็วจำกัด) แต่ยังคงรักษาความ compatibility และ portability กับ browser ทุกตัวไว้ได้ ซึ่งมาตรฐานของ code แบบนี้คือที่เรียกว่า WebAssembly หรือย่อว่า Wasm (รูปแบบไฟล์ .wasm)