Firefox in WebAssembly

Simon Willison's Weblog Simon Willison's Weblog

https://developer.puter.com/labs/firefox-wasm/">Firefox in WebAssembly


This is absurdly cool: Puter compiled Firefox to WebAssembly such that the whole browser runs in another browser.


Here's my blog, running in Firefox, running in WebAssembly, running in Chrome:


A Chrome window.</p><p>The tab has the Firefox UI and has loaded my blog.</p><p>On the right is the Chrome network panel showing that it loaded resources that include a 233MB gecko.wasm and an 18MB chrome-assets.tar.zsthttps://static.simonwillison.net/static/2026/firefox-wasm.webp" />


They chose Firefox/Gecko because it has strong single-process support.

The project used an estimated $25,000 worth of Claude Opus and Fable tokens, but took advantage of a Claude Max subscription plan so cost much less in actual dollars.


The demo funnels all traffic over a WebSocket protocol (using the https://github.com/MercuryWorkshop/wisp-protocol">Wisp protocol) through Puter's server - a requirement to get this kind of thing to work because code running in browsers can't open arbitrary network connections.


(That proxying sounds expensive!

The team https://news.ycombinator.com/item?id=48926939#48936563">had to scale the servers up to handle the traffic during the Hacker News conversation about the project.)


Puter claim this supports end-to-end encryption and that looks to be true - I inspected the WebSocket messages and traffic to my own HTTPS site was encrypted whereas requests and responses to http://www.example.com/ were in cleartext.


https://github.com/HeyPuter/firefox-wasm">Here's the repo for firefox-wasm. https://github.com/theogbob/WebkitWasm">theogbob/WebkitWasm is a similar project that compiles WebKit to WASM, but that one doesn't currently have an accessible online demo.

Via https://news.ycombinator.com/item?id=48926939">Hacker News




Tags: https://simonwillison.net/tags/browsers">browsers, https://simonwillison.net/tags/firefox">firefox, https://simonwillison.net/tags/ai">ai, https://simonwillison.net/tags/webassembly">webassembly, https://simonwillison.net/tags/generative-ai">generative-ai, https://simonwillison.net/tags/llms">llms, https://simonwillison.net/tags/ai-assisted-programming">ai-assisted-programming, https://simonwillison.net/tags/claude">claude, https://simonwillison.net/tags/claude-mythos-fable">claude-mythos-fable

Read full article at Simon Willison's Weblog →