HTML builder with server routing for Python
Project description
Sistine
React-like UI framework for Python. Build reactive web UIs with HTML/Tailwind + Alpine.js, powered by Streamlit.
Sistine wraps Streamlit with a routing layer, DOM builder, and reactive client-side components — giving you pixel-perfect custom UI without giving up Python.
Why Sistine, why not Streamlit?
Streamlit is great for data apps fast, but falls short when you need:
| Pain point | Streamlit | Sistine |
|---|---|---|
| CSS control | Limited, no hover/flexbox/grid/animations | Full Tailwind + custom CSS |
| Custom HTML | No ergonomic HTML builder | el.div(cls="...")(child) chaining syntax |
| Client interactivity | Full page reload on every interaction | Alpine.js — no reloads, reactive |
| Architecture | Linear script | MVC with routing (@app.sistine("/")) |
| API endpoints | None built-in | @app.query — JSON endpoints callable from JS |
| Static export | Not supported | sistine build → static HTML files |
You keep Streamlit's Python ecosystem while getting frontend-level UI control.
Reactive Components
Sistine ships with Alpine-powered components that talk to your @app.query endpoints — dropdowns, tables with pagination, forms, live-updating views, and mutation buttons. No JS required.
Routing & MVC
Decorator-based routing with path params. Optional MVC scaffolding via sistine init — models, views, controllers.
Auth & Session
@alpinejs/persist is auto-included. Build login flows with client-side session persistence using $persist().
Installation
pip install sistine
Docs
Full documentation with examples, API reference, and component guides: https://sistine-website.vercel.app
Examples
Check examples/query_showcase.py (all components), examples/auth_demo.py (auth + CRUD), and more in the examples/ folder.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sistine-0.3.6.tar.gz.
File metadata
- Download URL: sistine-0.3.6.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffd59f1b6437fb2cce9b11ac9e35c8f8bb3062baf21099fdd2ccf6d70d059a27
|
|
| MD5 |
1bfd1a5836147ae8d5eed25ca08f50ed
|
|
| BLAKE2b-256 |
30f052f441afde97b2d188151b87e7c6b5c39aeb516771d024961bf2de0e1035
|
File details
Details for the file sistine-0.3.6-py3-none-any.whl.
File metadata
- Download URL: sistine-0.3.6-py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfd696945a13bab4e20d42c74f31ba63a90a1d4fde4a9752769a01d0c0df0323
|
|
| MD5 |
95f7e46e8b25fdc92263c778924deec1
|
|
| BLAKE2b-256 |
34bcfaf71859c2c8f72b926a68e97fbae6d0fee61a4f7fe9757f15c377be702f
|