ATRIUMsearch → argument graph
Article · 2026-07-16 · 6 moments

Firefox in WebAssembly

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: They chose Firefox/Gecko because it has strong single-process support. The project took an estimated $25,000 of Claude Opus and Fable tokens, taking advantage of a Claude Max subscription plan. The demo funnels all traffic over a WebSocket protocol (using the Wisp protocol) throu ✦ AI generated

02
Mechanism

Firefox/Gecko was chosen as the browser to port because it has strong single-process support.

The team selected Firefox's Gecko engine specifically for its strong single-process support, which made it a better fit for compiling to WebAssembly.

transcript

Simon Willison: They chose Firefox/Gecko because it has strong single-process support. The project took an estimated $25,000 of Claude Opus and Fable tokens, taking advantage of a Claude Max subscription plan.

03
Fact

Puter has compiled the entire Firefox browser to WebAssembly, so the whole browser runs inside another browser.

Puter built a project that compiles Firefox itself to WebAssembly, allowing the full browser to run inside another browser like Chrome.

transcript

Simon Willison: 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

explains mechanism · 1extends · 1provides context · 1

04
Fact

Puter's proxy setup does support end-to-end encryption, as verified by inspecting the WebSocket traffic, which showed HTTPS site traffic encrypted while plain HTTP traffic was in cleartext.

The author independently verified Puter's claim of end-to-end encryption by inspecting WebSocket messages, finding HTTPS traffic encrypted and HTTP traffic sent in cleartext, confirming the claim held up.

transcript

Simon Willison: 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.

05
Mechanism

The demo must route all network traffic through Puter's server over a WebSocket-based Wisp protocol because code running in a browser can't open arbitrary network connections.

Because browser sandboxing prevents arbitrary outbound connections, the demo tunnels all of Firefox's network traffic through Puter's own server using the WebSocket-based Wisp protocol.

transcript

Simon Willison: The demo funnels all traffic over a WebSocket protocol (using the 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.

06
Anecdote

The proxying setup is expensive to run, and Puter had to scale up its servers to handle the traffic spike when the project went viral on Hacker News.

Routing all browser traffic through a central proxy is costly, and Puter had to scale up its infrastructure to survive the surge in visitors after the project hit Hacker News.

transcript

Simon Willison: That proxying sounds expensive! The team had to scale the servers up to handle the traffic during the Hacker News conversation about the project.

Highlight slides
Related episodes