Chirp UI Team
Server-first UI components for Python web apps
We design and maintain chirp-ui — a component library for Python web apps that renders semantic HTML on the server and enhances it with htmx and Alpine only where a screen needs interactivity. A Python vocabulary for UI, not a string vocabulary: render first, enhance second.
Experience
chirp-ui Open source
100+ Kida macros for layout, forms, navigation, overlays, and data display, validated against a variant/size registry.
- Registry-driven vocabulary projected to macros, CSS, docs, and a manifest agents can inspect
- Composition primitives (stack, cluster, grid, frame, block) instead of a utility-class string vocabulary
- Escape-by-default rendering with html_attrs / attrs_map trust boundaries
- Cascade-layer public API so apps override without specificity tricks
Bengal documentation theme Open source
The documentation theme that ships with chirp-ui, used to build this very site.
- Token-parity theme package built on chirp-ui components, not a private CSS fork
- App shell, marketing kit, and docs chrome assembled from registry macros
chirp-ui
Recipes for app shells, marketing pages, and fragment-swap islands that stay legible without a client framework.
- Server-driven data grid with typed sort/selection state
- Mobile nav drawer, suspense slots, and OOB composition helpers
Selected work
Server-driven data grid
Sortable, selectable grid rendered from a Chirp-agnostic Python state helper.
- aria-sort projected from server state so headers can't drift from ORDER BY
- Page-scoped select-all with htmx load-more and re-seeded selection
Component manifest
A machine-readable manifest so coding agents cite components instead of guessing class strings.
- Deterministic, schema-versioned output built from the registry
Skills
Languages & runtime
Rendering
Interactivity
Tooling
Education
Render first, enhance second
- Make the common screen consistent so docs and product never drift apart
- Prefer composition and tokens over bespoke CSS
Languages
- Python
- Native
- HTML / CSS
- Fluent
- htmx
- Conversational
This profile is generated entirely from theresume:block in its YAML
front-matter — edit the data, not the markup, to update the resume.