Wanted to share some projects I’ve been working on over the past 3-4 months that are all built for Python 3.14t free-threading.
Bengal: A Static Site Generator (SSG) . If you like the power/mental model of Hugo but need Python/CLI autodocs, this SSG is that. Doing this project inspired me to tackle all the others in this list and then extract them as separate tools.
Kida: A template engine. My attempt at an alternative to Jinja2.
Patitas: A markdown parser that’s CommonMark compliant.
Each of these dogfood Bengal as their docs site, being built on GH pages. Example: Bengal - Bengal
My hope is to eventually make Bengal the most ergonomic and batteries-included OSS SSG available – I’ve gotten pretty far, but it’s a long road!
Also, if you like building themes… I’d love to see some come out for this so I can build a showcase. Right now it’s just the default, and the only real working scenario is of course the documentation output haha.
Hey all — wanted to circle back and update you on my vibecoding journey. Since January the scope has grown quite a bit — what started as a doc tools suite is now a full-stack web ecosystem. Still all pure Python, all free-threading native, all built in Cursor (though some Claude Code). Overall, the Composer models keep me coming back. I absolutely loved Composer 1.5 and excited to have 2.0 take my stack forward.
Note
All of these are still alpha/beta, but I just enjoy sharing the update.
New: Pounce — ASGI Server
GitHub · pip install bengal-pounce
An ASGI server that auto-detects whether you’re on free-threaded Python (spawns worker threads, shared interpreter) or GIL Python (spawns worker processes). You don’t configure this — it just does the right thing.
HTTP/1.1, HTTP/2, and WebSocket support, plus HTTP/3 via optional Zoomies integration
Custom fast HTTP/1.1 parser replacing h11 on the sync worker hot path
Comparable to uvicorn throughput in multi-worker sync mode
Built-in Prometheus metrics endpoint, OpenTelemetry tracing, and Sentry integration — no extra packages
Static file serving with ETags, range requests, and pre-compressed file detection
Rich dev error pages with syntax-highlighted tracebacks (using Rosettes from the original post)
Graceful reload via SIGHUP for zero-downtime deploys
New: Chirp — Web Framework
GitHub · pip install bengal-chirp
A web framework built for the modern web platform — browser-native UI, HTML over the wire, streaming, and SSE. No React. No build step. I’m having a lot of fun with this.
Return types drive content negotiation: return a Template for a full page, a Fragment for an htmx partial, a Stream for progressive HTML, an EventStream for SSE. No make_response() boilerplate.
Filesystem-based page routing with nested layouts
app.check() validates your entire hypermedia surface at startup — routes, template refs, fragment blocks, htmx targets, SSE event names
Islands architecture for isolated high-state widgets (Alpine.js, vanilla JS, whatever)
App shells with OOB swaps — sidebar, breadcrumbs, and title update without full page reloads
Built-in auth with sessions, rate-limited login, lockout, and audit events
Fused sync fast path through Pounce for simple handlers
GitHub · pip install zoomies
Sans-I/O QUIC and HTTP/3 for Python 3.14t. I built this because aioquic uses C extensions that don’t work with free-threaded Python. Zoomies is pure Python: feed datagrams in, get events out. CID-based connection routing for server-side multiplexing. Powers Pounce’s H3 layer. Still early — congestion control and 0-RTT are not yet implemented.