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.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.9.0
File Size Uploaded
spaday-0.9.0.tar.gz 1.4 MB Details

Built distributions (wheels)

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

Total release size: 11.6 MB

Release files / spaday-0.9.0.tar.gz

Download URL spaday-0.9.0.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
509f9577a1d6a8b52c20e4ca779d0c5e73dffb304955477711e54f946bf8b676
BLAKE2b-256 checksum
How to use checksums
da7ea8188212e0f6e2275ca7684975eac9e0083e5edbdcbfd2aa99dbc9353d94
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.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl

Download URL spaday-0.9.0-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
b4514a6c9f66782dd472cd741cf056cc961cd11511954f347c87ca319f25f764
BLAKE2b-256 checksum
How to use checksums
a9c7e2d768012db6ddd13f28776e6be3fc83f37d8a7de0e760e0db92fe00c21e
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.0-cp311-abi3-win_amd64.whl

Download URL spaday-0.9.0-cp311-abi3-win_amd64.whl
Size 3.6 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
59a53effa3543ff672e51cd30955d03e44a4bcf004f5a404d102e6fc001e915b
BLAKE2b-256 checksum
How to use checksums
8a962affe38bc2392f61b152ea34b5025a6cb4f9e95d1459cf075e9d59044eb2
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.0-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL spaday-0.9.0-cp311-abi3-manylinux_2_28_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
8a3ed4eafb8613b2ea927b734cc0b371411c767cb2c4e4ecbb49bb68552c411c
BLAKE2b-256 checksum
How to use checksums
9daee5dc2f08f5d609c2f6f661989c2df5a4c917cdb928c68d86e0f58e2d0357
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.0-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL spaday-0.9.0-cp311-abi3-manylinux_2_28_aarch64.whl
Size 1.7 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
68bec3c8b365d59e192baa6004f71c83288d16ffe45deababc9652e18748075f
BLAKE2b-256 checksum
How to use checksums
0880598c5f55558815030aa9a35bae446b412ec439226b9f1516a682b3e2d6c8
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.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL spaday-0.9.0-cp311-abi3-macosx_11_0_arm64.whl
Size 1.7 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a297865904171397aa96108cb86efa26f739ffb221f550764c81694761c94997
BLAKE2b-256 checksum
How to use checksums
271ddad16177259b32aec0cb0aab1e22a36e0edbe2ac2e60f5e03eb26321bb70
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

0.9.1

6 release files

This release

0.9.0 This release

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