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/

https://preview.redd.it/4ns0umarpz5h1.png?width=1310&format=png&auto=webp&s=69435b546a1cc04132099259d625f2986ef33dde

https://preview.redd.it/2rnut5sspz5h1.png?width=1316&format=png&auto=webp&s=c2d8ee15030c8d4867ab59e683bb735b9fa10a4d

https://preview.redd.it/zv8pd1cupz5h1.png?width=1319&format=png&auto=webp&s=33be55ebb4821955baf23f8b3fe7621f357e186f

https://preview.redd.it/r3dco18vpz5h1.png?width=1313&format=png&auto=webp&s=3d528f801de8bdbcfcc2133de1d4ce7b77b553cb

Posted Jun 8, 2026, 4:56 AM UTC

17120
Loading comments…