0007: uv and granian for Python sites

On this page

Status: accepted

Context

Python sites need a Python version, a virtual environment with their dependencies, and a server that reloads on change, for both WSGI and ASGI apps.

Decision

Use uv for Python versions and environments (uv sync, or uv venv plus uv pip install -r) and granian to serve each site.

Consequences

Fast installs, one tool for versions and packages, and one server for Django, Flask and FastAPI.