Build websites with Python.
Write pages as Python functions. Generate optimized HTML. Deploy anywhere.
$ pip install nitro-cliSix Tools. One Ecosystem.
Focused packages that work together or standalone. Pick what you need.
Static site generator that builds websites using Python and nitro-ui instead of template languages.
Build HTML with Python classes. Zero dependencies, type-safe elements, method chaining.
Schema-free data access for JSON with dot notation, queries, and path discovery.
Plugin system with async support, hook priorities, timeouts, and event namespacing.
Dependency-free validation with 51+ built-in rules and a clean, intuitive API.
Image processing with a chainable API, responsive generation, and smart presets.
How It Works
Three simple concepts. That's all you need to build any static site.
def render():
return Page(
title="Hello",
content=Body(H1("Hello, World!")),
)Write pages as functions.
Each page is a Python function. Use variables, loops, conditionals — real code, not a template language.
Card(
H2("Welcome"),
Paragraph("Get started in seconds."),
cls="hero-card"
)Compose with components.
HTML elements are Python classes. Nest them, reuse them, pass props as keyword arguments.
data = DataStore.from_file("posts.json")
for post in data.posts:
Card(title=post.title)Load data with dots.
Access JSON and YAML with dot notation. No schemas, no boilerplate — just data.field.value.
"Python is all you need."
No complex build chains. No template languages. No JavaScript required. Just Python functions that return HTML.
Read the documentation