Countless media have flourished since Gutenberg invented his printing press, but the passivity of the reader/consumer has been hard to escape. Sure, the "newspapers of record" now have TikTok accounts and websites stuffed to the brim with ad-tech and paywalls, but the essential core experience of reading text, viewing pictures, and moving on has remained
Video killing the radio star felt transformational, but ultimately, video is still a passive experience. We are separate from whatever is being presented on the screen even when we attempt to be active, engaged media consumers. Look at Youtube Shorts and TikTok and tell me it's not just more text on a screen, just in different ratios than the traditional "newspaper website format."
Interactive charts and maps have genuinely been a huge innovation for journalism in my lifetime, but they are often presented in a "terminal" manner where you are separate from the analysis. You get a visualization created by the data journalism team, and that's kind of it. You usually don't get the chance to continue the analysis yourself in any meaningful way.
WebAssembly (Wasm) is a compilation target that lets us build software for the browser. It is implemented as a stack machine. Instead of compiling code from languages like C, C++, Rust, and more to machine code for x86 or ARM, we can target Wasm instead.
I had a lot of fun last year building a project with WebAssembly that solved real issues for me in publishing data science content. Now I am seeing other examples of the same pattern in other real-world projects. WebAssembly basically lets us rethink the concepts of content, interactivity, and engagement for new publishing platforms. It lets us shift to publishing data, models, and computation that let users try things instead of reading about doing them.
Two Examples: real benefits from publishing content as software/data, not text
Kraieski.dev webR ggplot2 gallery
I am passionate about exploring datasets to build artifacts that aid in understanding slices of the world: explainable statistical models, charts, maps, clustering models, and more. My weapon of choice for this is R multi-part system thats ships a package of parts that include:
- Math libraries in C and Fortran
- A programming language and interpreter
- A package system for installing statistical/graphical software, including
- A documentation/help system
Once you have it installed and you have some minimal fluency, it essentially becomes "Super Excel." But most people in the world don't have R installled and waiting.
When I uncover something interesting in my data investigations with R, there are numerous options, like writing a detailed article of my analysis (including instructions on downloading the data for oneself for reproducibility). But this is a lot of work if I am going to do something that is worth both my time and that of my readers. I needed a way to publish just 1 chart at a time with all the data and code necessary for reproduction, so I built a gallery page that uses Wasm to render the graphics from the data/code examples stored in my CMS. Users can copy the code and data if they want to continue analyzing the data on their own, but the charts are also visible frictionlessly to users that don't know/care about R.

After months of usage and code/data uploads across a number of data analysis projects, I definitely consider this gallery an asset in building my professional portfolio going forward, not just some kind of toy example. And the backend has responded to literally thousands of requests for plots.

TONE3000's Wasm fork of NAM
Neural Amp Modeler (NAM) lets musicians make playable models of their gear's behavior with deep learning. TONE3000, a platform for sharing these models, forked NAM to run in the browser with Wasm. This lets users on TONE3000 hear what different tone packs will sound like in their browser and without having to play guitar (here are mine!). I have a cool little pedal that can load and use these models (which I reviewed on my new music technology site, TubesAndCode.studio), but it is SUPER helpful to generally know what sounds good before I download it to the device.
Without Wasm, the experience on this platform would be (was?) a lot different. People would have to spend more time talking about which models are worth downloading and promoting their work instead of just browsing and listening. In this context, Wasm is transformational.
Didn't JavaScript already do this for us?
No! JavaScript has done a lot for us, but ultimately the language is coupled to a document system. It's great for manipulating that document structure in response to events, but lets not kid ourselves into thinking that JS and its ecosystem can replace all the software people use in specialized fields like data science, bioinformatics, bayesian statistics, music production, DSP, and more. And it isn't an all-purpose compilation target (this sentence could possibly age poorly, but I am willing to take that risk).
In the world of interactive data analysis and data visualization, Observable's JS-based notebook platform comes very close to the kind of experience I am imagining. However, even when I really tried to get into it a few years back, I frequently found myself saying "wow, these charts are really informative, but now I need to go back to R to do some real math and get p-values." I'm positive there are countless other examples of this across various fields.
Project Jupyter, along with the general concepts of literate programming and interactive programming, are also related to what I'm talking about in this article, but Jupyter doesn't solve any last mile runtime issues without Wasm.
Concluding thoughts
In our current world, it seems like most platforms are designed to make us fight tooth and nail to maximize engagement while also structurally capping the depth of engagement. What if engagement was an emergent property of the content and adapted to the user's workflow and attention? That's exactly what Wasm enables.
Wasm can bridge "content," participation, and workflows.
To the extent we embrace it, Wasm changes how humanity shares experimentation. That isn't speculation or a far-off fantasy, it's an observation of my life and real companies. Think about the software you use, especially open-source. Are there any challenges sharing or documenting your work with these tools? If so, it could be an opportunity to cut out real friction.
Wasm means many things as a technology, but to me, one of the huge parts is how computation and data can be native media instead of just things we write about.
I think this has big implications for publishers, website owners, CMS developers, data scientists, artists, and more, but I don't know if we'll have some big "Wasm is here moment" (like the Iphone was for apps on a phone or perhaps like what ChatGPT was for Pytorch). WebAssembly is now stably a part of the web platform. What are you waiting for?
If AI threatens to crowd out human expression in the old internet of text, maybe we can build a new internet of apps and data. For real this time.