The Python scientific stack, compiled to WebAssembly. It provides transparent conversion of objects between Javascript and Python. When inside a browser, this means Python has full access to the Web APIs.
Running full Python in the browser means users can create and run apps without any backend. It’s magical. Preswald uses Pyodide to support live preview, AI refactors, and stateful execution, all offline.
We considered Brython, Transcrypt, running a server and syncing via WebSockets.
Startup time and memory can be a pain. lazy-load what you can, and show a clear loading UI. Also: wrap filesystem access in a clean API. Pyodide's internal FS can be tricky.
Our free online playground (https://marimo.new) lets you run marimo notebooks entirely in the browser — no backend required! This is powered by the amazing Pyodide project, which is a port of CPython to WebAssembly.