With a lot of help from Claude Code, I managed to put together a proof of concept version of full Racket running in a browser:
It's based on an emscripten build of Chez Scheme with interpreted platform independent bytecode (tpb32l). Continuations, threads, and some native packages work.
The code is in the repository below. It's a bit of a mess, as I attempted to get the WASM build integrated into the Racket build process. In retrospect, that may have been a mistake. If anyone is interested, I can try to write up some notes about how it works. (The repo contains a build-wasm.md with AI-generated notes, though I can't attest to their accuracy.)