Static sites, pure Python.

Skip the template languages. Write pages as Python functions, generate optimized HTML, and deploy anywhere.

$ pip install nitro-cli
~/my-site

Six Tools. One Ecosystem.

Install only what you need. Each package works standalone or together with the rest.

>=Nitro CLI

Build static sites with Python code instead of template engines. Live reload, incremental builds, deploy anywhere.

pip install nitro-cli
Docs
</>Nitro UI

Create HTML with Python classes instead of strings. Type-safe, autocomplete-friendly, zero dependencies.

pip install nitro-ui
Docs
{ }Nitro DataStore

Access JSON with simple dot notation. No schemas to define - just load your data and go.

pip install nitro-datastore
Docs
//Nitro Dispatch

Add plugins to any Python app. Async-ready hooks with priorities and error isolation built in.

pip install nitro-dispatch
Docs
[x]Nitro Validate

Validate data in one line. 51+ built-in rules, zero dependencies, clean pipe syntax.

pip install nitro-validator
Docs
[ ]Nitro Image

Resize, convert, and optimize images with a chainable API. Generate responsive sizes in one call.

pip install nitro-image
Docs

Dead Simple

Three concepts. That's it. No build configs, no magic - just Python you already know.

page.py
def render():
    return Page(
        title="Hello",
        content=Body(H1("Hello, World!")),
    )
01

Pages are functions.

Each page is a Python function. Use variables, loops, conditionals - real code, not a template language.

component.py
Card(
    H2("Welcome"),
    Paragraph("Get started in seconds."),
    cls="hero-card"
)
02

Components are classes.

HTML elements are Python classes. Nest them, reuse them, pass data as keyword arguments.

data.py
data = DataStore.from_file("posts.json")

for post in data.posts:
    Card(title=post.title)
03

Data is dot notation.

Load JSON or YAML and access it with dots. No schemas, no boilerplate - just data.field.value.

"Python is all you need."

No webpack. No template languages. No JavaScript required. Just Python functions that return HTML.

View on GitHub