New to Chirp? Start here. This section takes you from zero to a running,
server-rendered app that swaps HTML fragments over the wire — no SPA, no JSON
API. Coming from Flask or Django, you already know routes and templates; the new
idea is that the return type is the intent
(return aFragment, a Page, a stream), and Chirp handles content negotiation
and htmx awareness for you.
Prerequisites
This documentation assumes you are comfortable with:
- Python (3.14+)
- HTML and basic HTTP (methods, forms, cookies)
- htmx basics — partial page updates via attributes like
hx-getandhx-target(htmx.org docs)
Helpful before you go deep:
- Coming from Flask? → Coming from Flask
- Evaluating Chirp? → When to use Chirp and Non-goals
- Agent or IDE tooling? → site-wide doc index at
/chirp/llms.txt(generated on build)
Learning path
Follow the numbered learning path for the full curriculum in order. The cards below are the same steps — start with the path page if you want one checklist.
Numbered curriculum from install to deployment
The full first-week path in one page.
Install Chirp with pip, uv, or from source
Get Chirp running in your environment.
Build your first Chirp app in 5 minutes
From hello world to fragment rendering.
Build a small htmx app with one template
Routes,Page, Fragment, a form POST, and chirp check.
Recommended directory structure
Conventions used by chirp new.