Skip to main content
spaday logo, a face with a facemask and lemon slices bounded by a browser window

Build Status codecov License PyPI

Reactive web-component UIs configured in Python, executed in the browser.

Browse the standalone examples or open the interactive notebook. Python runs in Pyodide, so nothing needs to be installed locally.

Overview

Construct a UI as a tree of typed Python components from opt-in packages or any library that ships a Custom Elements Manifest. Attach behavior as declarative data: an action DSL (toggle a prop, send a model edit, call an endpoint) and reactive bindings (a control two-way-bound to a state field, or a prop computed from others). spaday's JavaScript runtime renders the tree to real web components and interprets that behavior client-side — so a toggle or a derived value updates with no round-trip to Python.

That UI state is a transports model, so it syncs over any connection (WebSocket, SSE, Jupyter comm) and any codec; the same tree drops into a web app or a Jupyter notebook unchanged.

Like transports, spaday is a Rust core with thin bindings: the component tree, the diff engine, the CEM parser, the action interpreter, and the reactive engine live in Rust and compile to PyO3 (Python authors the tree) and wasm (the browser runs it). One core, two bindings.

from spaday import Widget, element

# a checkbox two-way-bound to a state field, rendered in a Jupyter cell
ui = element("input", type="checkbox").bind("checked", "on", mode="two-way")
w = Widget(ui, state={"on": True})
w  # flip the switch → w.state["on"] flips in Python; set w.state → the switch follows

Install

pip install spaday            # core: author + serialize component trees
pip install "spaday[widget]"  # + the Jupyter / anywidget host

Component ecosystem

Install only the integrations an application uses. Each package provides typed Python components and registers its browser assets with spaday:

Design Systems

Individual Components

Select an installed integration by its entry-point name, for example serve(page, packages=["trees"]).

Documentation

Release files for spaday 0.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spaday 0.9.1
File Size Uploaded
spaday-0.9.1.tar.gz 1.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for spaday 0.9.1
File
spaday-0.9.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl CPython 3.14 CPython 3.14 PyEmscripten 2026.0+ WebAssembly Details
spaday-0.9.1-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
spaday-0.9.1-cp311-abi3-manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.28+ x86-64 Details
spaday-0.9.1-cp311-abi3-manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64 Details
spaday-0.9.1-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details

Total release size: 10.2 MB

Release files / spaday-0.9.1.tar.gz

Download URL spaday-0.9.1.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
64043e2770e99beaa4029cf8ca5f50df707cd2bb83cacd8f2a242be0844bbb4a
BLAKE2b-256 checksum
How to use checksums
9f24dd29e28a81595901c35166f1f74fed6854f8985d018d3a8d31abe087e3ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / spaday-0.9.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl

Download URL spaday-0.9.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Size 1.5 MB
Tags CPython 3.14 PyEmscripten 2026.0+ WebAssembly
SHA-256 checksum
How to use checksums
c36a2633dd97a27086b24aaeeb28beabadd37439bc835ce1d9858b7410c48bc7
BLAKE2b-256 checksum
How to use checksums
0e3c948a0fb5b57a5ceb01d71d9d6d16cf06409642173a768e31def7de39e2dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / spaday-0.9.1-cp311-abi3-win_amd64.whl

Download URL spaday-0.9.1-cp311-abi3-win_amd64.whl
Size 1.8 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
58db29959ba4b90293e937956a414f1af59e9c43655b8eb5940e27fb43fb883a
BLAKE2b-256 checksum
How to use checksums
4d438f562f33ea542d97bd2260d923a381bf7ab9def1cdd759415735ab96eeea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / spaday-0.9.1-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL spaday-0.9.1-cp311-abi3-manylinux_2_28_x86_64.whl
Size 1.8 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
5465c789a28ad1b1e1f924a3a854a869b02e1393ef667e24860d37489a48d638
BLAKE2b-256 checksum
How to use checksums
752e0a7230a8c53a6c286b540a6a5150ec73f70d9999957b3a37285b0ba07440
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / spaday-0.9.1-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL spaday-0.9.1-cp311-abi3-manylinux_2_28_aarch64.whl
Size 1.8 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
6144830db319aaa636cc13e261e1785f5610dcaa3d6b60d1f9fa3f09f1035a76
BLAKE2b-256 checksum
How to use checksums
fdf46835fc2b9e9f452804a0710229bbeaab1acd6005c9ab1292501b34693916
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / spaday-0.9.1-cp311-abi3-macosx_11_0_arm64.whl

Download URL spaday-0.9.1-cp311-abi3-macosx_11_0_arm64.whl
Size 1.8 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
975694179b2b4bacd4e99bc468b28cac6540f85f752683efa792c5b435d57f04
BLAKE2b-256 checksum
How to use checksums
c3ad96c83e80319ed3bbb10852fc620e4e4060056ee920abe8c50a16b98dff9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.11.0

6 release files

0.10.0

6 release files

This release

0.9.1 This release

6 release files

0.9.0

6 release files

0.8.2

6 release files

0.8.1

6 release files

0.8.0

6 release files

0.7.14

6 release files

0.7.13

6 release files

0.7.9

6 release files

0.7.8

6 release files

0.7.7

6 release files

0.7.6

6 release files

0.7.5

6 release files

0.7.4

6 release files

0.7.3

6 release files

0.7.2

6 release files

0.7.1

5 release files

0.7.0

5 release files

0.6.0

5 release files

0.5.0

4 release files

0.4.1

4 release files

0.4.0

4 release files

0.3.0

4 release files

0.2.2

4 release files

0.2.1

4 release files

0.2.0

4 release files

0.1.1

4 release files

0.1.0

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page