How-tos

Helpful hints and common patterns.

Minimal nanodjango site

Nanodjango is a perfect way to build a minimal static site generator.

Create a mysite.py:

# /// script
# dependencies = ["nanodjango", "django-nanopages", "django-browser-reload"]
# ///
from nanodjango import Django

app = Django()
pages = app.pages("/", "pages/")

if  __name__ == "__main__":
  app.run()

Run it using uv (or pipx or similar) - this will listen on port 8000:

uv run mysite.py 0:8000

Build it to a static site using the django-distill integration:

pip install nanodjango django-nanopages
nanodjango manage mysite.py distill-local static_site/