Chirp UI Team

Server-first UI components for Python web apps

Built in the open

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.

stack 100+ Kida macros
cube 6 Layout primitives
zap 0 Build steps

Experience

Component Library 2023 – Present

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
Python 3.14 Kida htmx Alpine.js CSS @layer
chirp-theme 2023 – Present

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
Bengal Kida chirp-ui
Patterns & recipes 2022 – Present

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

Composite + typed helper · 2024

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
Python htmx Alpine.js

Component manifest

Agent grounding · 2024

A machine-readable manifest so coding agents cite components instead of guessing class strings.

  • Deterministic, schema-versioned output built from the registry
Python JSON Schema

Skills

Languages & runtime

Python 3.14 Free-threading HTML CSS

Rendering

Kida templates Jinja-like macros BEM @scope / @layer

Interactivity

htmx Alpine.js SSE Progressive enhancement

Tooling

uv pytest Playwright ruff

Education

Design principles 2022 – Present

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.