Basis: Full-Stack Reactive Python Framework
Basis is a full-stack web framework for building interactive, stateful web applications entirely in Python. It runs FastAPI on the server for initial Server-Side Rendering (SSR) and PyScript in the browser for Client-Side Hydration (CSH), providing a reactive, component-based developer experience with no JavaScript.
Quickstart
1. Installation
Install the framework alongside FastAPI and Uvicorn:
pip install fastapi uvicorn basis-framework
2. Scaffold or Create an App
Using the Basis CLI:
basis init my-app
cd my-app
basis dev
Or write a minimal app.py:
from basis.shared.component import Basis, Component
app = Basis()
@app.entrypoint
class HelloBasis(Component):
"""
<div>
<input bind="{name}" placeholder="Type your name..." />
<h1>Hello {name}!</h1>
</div>
"""
name = "World"
3. Run the Development Server
Run with the Basis CLI:
basis dev
or directly via Uvicorn:
uvicorn app:app --reload
Navigate to http://localhost:8000 to interact with the application.
Core Philosophy
- Python Everywhere — Write backend services, business logic, component templates, and client-side reactive state in pure Python.
- Native Custom Elements — Components map to standard hyphenated HTML custom tags, keeping styling and markup aligned with web standards.
- Fine-Grained Reactivity — No Virtual DOM. Basis uses a Directed Acyclic Graph (DAG) to track dependencies and update only targeted DOM nodes when state changes.
- Isomorphic Hydration — Server renders fully-formed, SEO-friendly HTML, which the client hydrates in-place without flashes of unstyled content or layout shifts.
- Extensibility & Modularity — Drop-in plugins, CLI tooling, and built-in UI components provide professional scaffolding out-of-the-box.
Documentation
For comprehensive guides, architecture diagrams, and detailed API breakdowns, browse the files in the docs/ directory starting with docs/index.md.
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 basis_framework-0.1.1.tar.gz.
File metadata
- Download URL: basis_framework-0.1.1.tar.gz
- Upload date:
- Size: 8.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99105f61531a0db08c8b056a9d08cde07fd8464e9a2950260ed121bf9567e70b
|
|
| MD5 |
45500b3b2e5c68b6eb3ebbedd7a45aa9
|
|
| BLAKE2b-256 |
8131c66b8a42cab5ecc22f56fb38ceb60c7f5e63e3bc8809e15f6da7f6ad8c6d
|
Provenance
The following attestation bundles were made for basis_framework-0.1.1.tar.gz:
Publisher:
publish.yml on bassio/basis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
basis_framework-0.1.1.tar.gz -
Subject digest:
99105f61531a0db08c8b056a9d08cde07fd8464e9a2950260ed121bf9567e70b - Sigstore transparency entry: 2436112470
- Sigstore integration time:
-
Permalink:
bassio/basis@e581cbf074581a37199f0aa559cafd0bfce0e760 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bassio
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e581cbf074581a37199f0aa559cafd0bfce0e760 -
Trigger Event:
release
-
Statement type:
File details
Details for the file basis_framework-0.1.1-py3-none-any.whl.
File metadata
- Download URL: basis_framework-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
619b24fc1dafd226c79330cd5cc2c45cd82711451246ec7f6ff6dc60aad5b445
|
|
| MD5 |
573f545613eb10f7842de6dfafc2fbc4
|
|
| BLAKE2b-256 |
8ad918a3d13c4ed1f8cc7961c4d14600fd0d9525fce7ec5f3227dbea9fdb3d3c
|
Provenance
The following attestation bundles were made for basis_framework-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on bassio/basis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
basis_framework-0.1.1-py3-none-any.whl -
Subject digest:
619b24fc1dafd226c79330cd5cc2c45cd82711451246ec7f6ff6dc60aad5b445 - Sigstore transparency entry: 2436112771
- Sigstore integration time:
-
Permalink:
bassio/basis@e581cbf074581a37199f0aa559cafd0bfce0e760 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bassio
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e581cbf074581a37199f0aa559cafd0bfce0e760 -
Trigger Event:
release
-
Statement type: