b-stack
posts tagged with "b-stack"
Why We Wrote Our Own Markdown Parser (And When You Shouldn't)
Why Patitas exists — ReDoS, O(n) lexing, parallel parsing — and when to use markdown or mistletoe instead.
How to Migrate a Pelican or MkDocs Site to Bengal
Migration guide: Pelican or MkDocs to Bengal. Content mapping, front matter, templates (Jinja2 to Kida), config, and common gotchas.
How to Build a Static Site with Free-Threaded Python (Bengal + 3.14t)
Step-by-step tutorial: build a static site with Bengal on Python 3.14t. Prerequisites, create site, add content, dev server, production build.
Kida vs Jinja2 — A Template Engine Built for Parallel Renders
Kida vs Jinja2 — shared state, copy-on-write, static analysis, and when to choose each Python template engine.
Chirp vs Flask vs FastAPI — When Free-Threading Matters
Chirp vs Flask vs FastAPI — concurrency models, when free-threading matters for Python web frameworks, and when it doesn't.
Bengal vs Pelican vs MkDocs — Python Static Site Generators Compared
Head-to-head comparison of Bengal, Pelican, and MkDocs — build speed, object models, batteries included, templating, incremental builds, and when to choose each.
The Python Free-Threading Ecosystem in 2026 — Who's Ready for NoGIL
Python free threading ecosystem in 2026 — PEP 703/779 status, who declares _Py_mod_gil = 0, and what's blocking adoption.
Best Python Static Site Generators for 2026 — A Builder's Take
A builder's comparison of the best Python static site generators in 2026 — Bengal, Pelican, MkDocs, Sphinx, and when to choose each.
Building for a World That Doesn't Exist Yet
Free-threaded Python is officially supported and almost nobody can build real apps on it. One wrong import silently re-enables the GIL. The ecosystem gap is wider than people think.
Type-Driven Responses — How Chirp Eliminates make_response()
In Chirp, the return type is the intent. Template, Fragment, Page, Stream, Suspense, EventStream — each type maps to exactly one response shape. No conditionals. No make_response().