I ported GNU Emacs 30.2 to the browser with WebAssembly
I made a hack that ports GNU Emacs 30.2 to run in the browser with WebAssembly.
This is not a project to build an “Emacs-like editor.” The idea is to keep the real GNU Emacs 30.2 C core and Elisp runtime at the center, while the browser side provides display, input, persistence, and portable filesystem images.
At this point, it can run *scratch*, Dired, Org-mode, load Elisp with load-file, import/export .wasifs images, and boot from static hosting on GitHub Pages.
.wasifs is a portable filesystem image for carrying around a user environment, including init.el, packages, and working files. The current spike format is tar-compatible, so you can inspect it with normal tar tools.
The Emacs core inside the browser does not have raw sockets or normal POSIX processes. Emacs features that depend on external commands or subprocesses do not work as-is.
Even with those limitations, real Emacs now boots from static hosting like GitHub Pages, can import/export the user environment as .wasifs, and can load Elisp with load-file.
We need the real Elisp engine.
I made this hack to give Emacs users something fun to play with. Emacs users, please give it a try.
github: https://github.com/modeverv/wasmacs
github pages: https://modeverv.github.io/wasmacs/
Posted Jun 8, 2026, 4:56 AM UTC