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.
Standard Streamlit
Stlite
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.
Host: any static file server
Desktop
Package the browser runtime as an installable app.
@stlite/desktopRuntime: the user's computer
Cloudflare Workers
ExperimentalKeep the familiar Streamlit client and server architecture.
in a Python Worker
@stlite/cloudflareRuntime: 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.