Posters
Scale
Paper

Stlite

Streamlit-Lite, in-browser Streamlit.

Run an interactive Streamlit app entirely on the visitor's device, powered by Pyodide and WebAssembly.

Streamlit turns a Python script into a web app

With standard Streamlit, a Python server runs the app script. The browser sends widget events to that server and receives view updates. This client and server design lets developers build interactive apps using only Python.

Stlite moves the Python server into the browser

Stlite loads Pyodide, starts Streamlit inside a Web Worker, and connects the same frontend to that local runtime. Pyodide takes CPython's place while the app and Streamlit layers stay nearly the same. A remote server can still supply static files, but it no longer executes the app.

Nearly the same Streamlit stack.The runtime and transport change.

Standard Streamlit

Remote server
Your app script
Python
Streamlit server
ScriptRunner and app state
CPython
Host operating system process
HTTP + WebSocketover the network
Web browser
Streamlit frontend
React user interface
same appStreamlit staysruntime replacementtransport adaptationsame frontend

Stlite

Static file server
delivers HTML, JavaScript, Python, and data
Web browser
Web Worker
Your app script
Python
Streamlit server
ScriptRunner and app state
Pyodide
CPython compiled to WebAssembly
In-browser transport bridgeASGI + Worker messages
Streamlit frontend
React user interface

One Streamlit app, three deployment targets

Choose where Python runs and how people open the app.

Browser SPA

Python runs on each visitor's device.

@stlite/browser

Mount an app in static HTML. The simplest path to a working SPA.

@stlite/react

Embed the Stlite runtime and app view in an existing React application.

Stlite Sharing

Put app files in a URL fragment for the Sharing page to decode and run locally.

Host: any static file server

Desktop

Package the browser runtime as an installable app.

Electron shellStlite browser runtime
@stlite/desktop

Runtime: the user's computer

Cloudflare Workers

Experimental

Keep the familiar Streamlit client and server architecture.

Browser frontendStreamlit on Pyodide
in a Python Worker
@stlite/cloudflare

Runtime: Cloudflare's edge

When browser-run Stlite makes sense

Use it when running Python on the visitor's device is part of the solution.

Private data tools
Process selected files locally instead of sending them to an application server.
Offline apps
Keep working after the runtime, packages, and app resources have loaded.
Scale with visitors
Serve static files while each visitor supplies the Python compute.
New delivery formats
Place the same Streamlit experience in a web page, React app, or Electron shell.

Check first: packages need Pyodide-compatible builds, the initial download includes Python, CORS still applies, and bundled source cannot contain secrets.