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

Built distributions (wheels)

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

Total release size: 15.7 MB

Release files / spaday-0.13.1.tar.gz

Download URL spaday-0.13.1.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
ce6eed60dccc61cb7f932f33392664b350777773a747eb6082eb02aa841d4e50
BLAKE2b-256 checksum
How to use checksums
98fb951aa1e10f6c94680dd7afd8c3aa176a28c57dc397bd0bc46e58f4574e3e
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.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl

Download URL spaday-0.13.1-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
e393df4092d1e04be2ab90412d7997907b3a346de3ed22de652f18d59f390b6e
BLAKE2b-256 checksum
How to use checksums
f2c4fbc81bafa677257ba978fe91aa08d6badd4ef47cc32bcd8ea5ec2ba74c09
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.1-cp311-abi3-win_amd64.whl

Download URL spaday-0.13.1-cp311-abi3-win_amd64.whl
Size 4.3 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
cc60a0a87d0cb57f6ee36f83ce1acfd6b8bf9e00300ffd79db9b1c86f66e3bce
BLAKE2b-256 checksum
How to use checksums
325af1e4772c48a3b6b959e7ba71ec1d59da61539bd618269640328622a3daba
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.1-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL spaday-0.13.1-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
5430d89bcbcb00a46fcd92c7cfc7cf624a9bb3231b468745b69d48cf75eb7eb2
BLAKE2b-256 checksum
How to use checksums
d8794cb235e78c9de54a1846656e884bfbaef3cb5fb466fe35289054eb5471d4
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.1-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL spaday-0.13.1-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
882954f3cc64b743d3c45f5fcbbff22bcf033f446640e7e3865b8dad9b8d7af6
BLAKE2b-256 checksum
How to use checksums
135e607bcd550c9538e81c6639d493416afc6b300da273ffdf567e15e14a3234
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.1-cp311-abi3-macosx_11_0_arm64.whl

Download URL spaday-0.13.1-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
dbeee390ea28f5886523d180ddeb7317fb6ec85af4a8d07216da47535e04bc2f
BLAKE2b-256 checksum
How to use checksums
2fd562596fb8594c14bd0f60fdd1ee11bce5fd30585189edecc8a609a8461209
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.1

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.1 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