Production Python in the Browser
PyCon US 2026
/plan i’d like to have a “python-in-browser” setup that lets me test regexes using python’s re module, for regex testing with python’s regex specifically. research and propose the best architecture for this in 2026. apply the color scheme #FDA500 for accent, #3FABCC for action (light) and #3F8BA3 for action (darker, for like hover). We want a dark mode, so invert and convert as necessary.

yak.party/pyregex
Have I been replaced by AI?
Agents don’t give you the most important parts.
Not syntax. Not dogma.

Actually good reasons:
A brief, honest history of Python in the browser

| Years | Project | Approach |
|---|---|---|
| 2009-2015 | PyJS / Pyjamas |
Transpiler + Qt/GTK widgets |
| 2010-2021 | Silverlight / IronPython |
Browser plugin |
| 2013-2019 | PyPy.js |
Compile PyPy to JS |
| 2013-2021 | RapydScript | Python-like to JS compiler |
| Years | Project | Approach |
|---|---|---|
| 2009-present | ![]() |
JS reimplementation, still chasing Python 3 |
| 2014-present | ![]() |
Runtime transpiler, maintained (Python 3.14), no C extensions |
| 2016-present | Transcrypt |
Python-to-JS transpiler, active (v3.9.4) |
Alive, but still niche.
Every previous attempt lacked at least one of:
pip install)
2011 - Empythoned (Replit
): Emscripten + CPython.
2017 - WebAssembly ships in all four browsers (overtaking Emscripten in Google Search results)
2019 - Pyodide: CPython compiled to WASM (Mozilla Research)
2020 - micropip: pip install in the browser (Pyodide 0.15)
2026 - v0.29. CPython Tier 3 WASM support (PEP 816)

| Project | What | Link |
|---|---|---|
| Full Jupyter in browser (official subproject, Feb 2026) | jupyterlite.readthedocs.io | |
| Reactive notebooks, WASM export | marimo.io | |
| ML demos in browser (Hugging Face) | huggingface.co | |
| Streamlit → WASM, PWA, Electron | github.com/whitphx/stlite |
Common thread: Mostly directly about Python in the user’s browser.
What we built (and what the agent didn't give us).
A couple projects I’ve shipped.
glompad: yak.party/glompad
Side project: Data exploration with glom
FinFam: finfam.app
Work: Like GitHub for consumer finance.
NB “Python” isn’t the point, it’s just the best tool for this job.
The architecture

Browser Python apps need browser tests.
Compilers, linters, and plugins the agent left out
Every layer of the build is a verification step.
Typed boundaries are your friends.
What the agent builds:
// Manual postMessage RPC
const pending = new Map();
let nextId = 0;
function execute(code) {
const id = nextId++;
return new Promise((resolve, reject) => {
pending.set(id, { resolve, reject });
worker.postMessage({ id, type: 'exec', code });
});
}
worker.onmessage = (e) => {
const { id, result, error } = e.data;
const p = pending.get(id);
pending.delete(id);
if (error) p.reject(error);
else p.resolve(result);
};
Closeable loops: The browser is an environment. Treat it like one.
Interop and architecture
The agent gives you isReady and isLoading. Production needs a state machine:
SharedArrayBuffer enables fast interrupts like Ctrl-C (but requires COOP/COEP headers).
A glimpse of what's coming.

| What | Why It Matters |
|---|---|
| CPython Tier 3 WASM (PEP 816) | Official upstream support |
| emscripten-forge | Recreating conda in WASM |
| Cloudflare | Pyodide in V8 isolates. Web UX doesn’t stop at the browser. |
server → edge → browser
Cloudflare Workers: Pyodide at the edge - ~1s cold starts via memory snapshots

What this all adds up to.

Verifiability: the thread that tied our five gaps together
Close your loops so you can focus on creating.

Python won. The language of good enough.
Good enough is glorious.
What hasn’t changed: Reach correctness first. Optimize later.
With every passing release, Python is becoming less and less the bottleneck.
The prototype is the product.

Now is the time to build first-class apps around Python’s top-notch libraries.
Got a favorite Python library? Build a web application around it.
Beautiful, interactive web UX.
Rock-solid Python business logic.

Python may be the language agents are best at writing.
Python may have won, but what about us?
An agent-assisted human beats a pure agent. Every time.
Ecosystem and community are real advantages. Don’t let them disappear.
If you believe one good turn deserves another…
goodturn.ai
Projects shown today:
Learn more:
