Frequently asked questions.
Everything you need to know about Nitro - from installation to deployment.
What is Nitro?
Nitro is a suite of Python tools for building static websites. The flagship is Nitro CLI, a static site generator that lets you write pages as Python functions using Nitro UI instead of template languages like Jinja or Liquid. It ships with live reload, incremental builds, dynamic routes, and image optimization built in.
Why Python instead of a template language?
Templates are a second language you have to learn, debug, and work around. With Nitro, pages are Python functions, so you get real variables, conditionals, loops, imports, type hints, and your full editor tooling. If you already write Python, there's nothing new to learn.
Is it production-ready?
Yes. Nitro CLI, Nitro UI, Nitro DataStore, Nitro Dispatch, Nitro Validate, and Nitro Image are all marked as Production/Stable on PyPI. The tools are BSD or MIT licensed and have comprehensive test suites.
How does Nitro compare to Hugo, Jekyll, and Astro?
Hugo and Jekyll are great if you're comfortable with Go templates or Liquid. Astro is excellent if your stack is already JavaScript. Nitro is for Python developers who want to stay in Python end-to-end. Unlike template-based generators, you can use any Python library directly in your pages - API clients, data processing, machine learning models, whatever you need at build time.
Can I use existing Python libraries?
Yes. Anything that runs in Python runs at build time. Call an API, read a database, process Markdown with python-markdown, run Pandas, parse YAML - whatever produces data or HTML is fair game.
Does Nitro support Markdown?
Nitro CLI ships with an optional markdown extra (pip install nitro-cli[markdown]) that adds python-frontmatter and markdown. For full control, you can use any Python Markdown library directly in a page's render() function.
Can I use Tailwind, Bootstrap, or other CSS frameworks?
Yes. Nitro outputs plain HTML, so any CSS framework or methodology works. You can drop Tailwind's CLI into your build pipeline, use Nitro UI's built-in StyleSheet and Theme helpers, or write regular CSS files.
How do I add interactivity?
Three options. First, Nitro UI has first-class HTMX support - just pass hx_get, hx_post, etc. as kwargs. Second, Nitro CLI's islands architecture supports partial hydration for reactive components. Third, you can always write plain JavaScript or drop in Alpine, Stimulus, or any other library.
How do I deploy?
nitro build produces a build/ directory of static files. Upload it anywhere - Netlify, Vercel, Cloudflare Pages, GitHub Pages, S3, or your own server. The nitro deploy command has built-in support for Netlify, Vercel, and Cloudflare Pages.
What about SEO?
Nitro generates clean, static HTML with full control over meta tags, canonical URLs, Open Graph, and JSON-LD structured data. It also generates a sitemap.xml and robots.txt automatically. Because output is fully rendered HTML, crawlers see everything immediately.
Is it free and open source?
Yes. All Nitro packages are open source under BSD 3-Clause or MIT licenses. No accounts, no paid tiers, no telemetry. Source is on GitHub and packages are on PyPI.
What Python versions are supported?
Nitro CLI requires Python 3.9+. Nitro UI supports 3.8+. Individual tools vary slightly - check each package's pyproject.toml for exact ranges. All tools are tested on Python 3.9 through 3.14.
Still have questions?
Open an issue on GitHub or browse the docs in each tool's repository.