Skip to main content

HTML builder with server routing for Python

Project description

Sistine

download

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: docs.md

Examples

Check examples/query_showcase.py (all components), examples/auth_demo.py (auth + CRUD), and more in the examples/ folder.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sistine-0.3.5.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sistine-0.3.5-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file sistine-0.3.5.tar.gz.

File metadata

  • Download URL: sistine-0.3.5.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for sistine-0.3.5.tar.gz
Algorithm Hash digest
SHA256 3d0d4b6e41c088564af91856fc273d03175a743e4eadf2314f4db87deac0de49
MD5 6fd08843f9f85a8a2bd0290290f79096
BLAKE2b-256 11375fc5d8431a7a5204085ab9100a6bc7e5233235790144190c40cc80d0f1c2

See more details on using hashes here.

File details

Details for the file sistine-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: sistine-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for sistine-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 10e2ce45301d8a982bad3b838318cc9e90ff55af8c2d2816d01fe1f4eead74ed
MD5 79e5b4e8f96ce7fbd284c406e377f231
BLAKE2b-256 3919982ba989acd933e6f7803c7f81dec8324a7c711595890a35a1d954b7167b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page