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

The spaday-shoelace compatibility package installs spaday-webawesome.

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

Documentation

Metadata

Release files for spaday 0.13.0

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.13.0
File Size Uploaded Provenance Actions
spaday-0.13.0.tar.gz 2.0 MB Without provenance Details for spaday-0.13.0.tar.gz

Built distributions (wheels)

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

Total release size: 15.7 MB

Release files / spaday-0.13.0.tar.gz

Download URL spaday-0.13.0.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
f9c4533a68f5b8ad1779bbaaa3f9fa18c414a242581ced80c16c203121cc849c
BLAKE2b-256 checksum
How to use checksums
e5e0ec893200f2a7527edc1b5ec930b69a46e2b618d03000ac47c1805f30cca3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

Download URL spaday-0.13.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Size 2.1 MB
Tags CPython 3.14 PyEmscripten 2026.0+ WebAssembly
SHA-256 checksum
How to use checksums
13c13a9c4f7b93c6449d424ebd2b84f008012dd9aca8cef74d70c1dd41adce82
BLAKE2b-256 checksum
How to use checksums
75473c8a06499debaa799d85743a0c10b7ea0e0e2e9ad69913284dd8462e2f8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

Download URL spaday-0.13.0-cp311-abi3-win_amd64.whl
Size 4.3 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
862408bdf23dfe2b08b9d78004c16da676f026a4f1183649a3b59e93497b8666
BLAKE2b-256 checksum
How to use checksums
b8a29f34dd785c33e4b1458d84a73870e03341883d6ccdbf9acda95cf292965f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

Download URL spaday-0.13.0-cp311-abi3-manylinux_2_28_x86_64.whl
Size 2.5 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
35f8ce43064ffe9b5127d7f7be7b3391409d5fd4993c0e3979bcb56a4f4d9c37
BLAKE2b-256 checksum
How to use checksums
0ceaae283c7c0566c56e765d41da8aff0868e156ed870c5e3e0dc4bf7e6e7344
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

Download URL spaday-0.13.0-cp311-abi3-manylinux_2_28_aarch64.whl
Size 2.4 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
cf8a6d87fad09e179717cd748bb38277ac9b6a8ab1de8f485bf30f3d4227df6d
BLAKE2b-256 checksum
How to use checksums
8c53ac7567af90ffa607348f3fc03a6d02a40ee0db1cb3bbecc49adddb119109
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

Download URL spaday-0.13.0-cp311-abi3-macosx_11_0_arm64.whl
Size 2.4 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
168cfbe23fe50fb4c275815fd9b8ad370724d32a8c667c1abb23013c33cc3122
BLAKE2b-256 checksum
How to use checksums
563bf86368bac6bb3a372df315edc66b020d668c339d51ee7d68672189ccad86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for spaday 0.13.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.13.0 This release

6 release files No provenance

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