ConceptsChoosing zfbWhen zfb fits your project, when it does not, and where the scaling sweet spot is.Design PhilosophyWhy zfb stays narrow on purpose, and why the AI era tips the balance further toward recipes over plugins.Architecture overviewTop-down mental model of zfb's runtime stack — the two bundles, what runs where, and why the Hono/Workers shape is the stable contract.Engine vs Frameworkzfb is the engine — frameworks like a future zudo-doc-v2 sit on top of its primitives.FrontmatterOne unified frontmatter contract across .md, .mdx, and .tsx — YAML on the markdown side, a static export literal on the TSX side, one JSON shape on the Rust side.RoutingHow file-system routing under pages/ maps to URLs in zfb.Dynamic RoutesUse paths() to enumerate the concrete URLs a [slug].tsx or [...slug].tsx page should build, and pass per-URL props to the component.Markdown and HTML PagesUse .md and .html files as first-class page entries alongside .tsx — same routing conventions, different render path.Content CollectionsDefine typed collections of Markdown content in zfb.config and load them from pages.MDX ComponentsHow MDX entries reach your pages as renderable React/Preact components, and how to override individual elements via the components prop.Custom DirectivesRegister your own MDX directives — container, leaf, and text — that map to JSX components without writing any Rust.DataThree options for sourcing structured data in zfb — content collections, frontmatter-only entries, and plain TS modules.StylingGlobal CSS, Tailwind v4, and where component-scoped styling fits in zfb.Static AssetsHow to ship images, SVGs, fonts, favicons, robots.txt, and any other byte-for-byte file through zfb's public/ directory.IslandsMark client-interactive components with "use client" and let zfb hydrate them in the browser.Non-HTML PagesEmit XML, RSS, JSON, and plain-text pages alongside your HTML — same TSX page model, different output extension and Content-Type.Build PipelineAn end-to-end tour of how zfb turns your project into a built site.Incremental rebuildHow zfb's dependency graph limits each rebuild to the pages actually affected by a file change.Dev mode lifecycleWhat happens between hitting save on a .tsx file and seeing the change in the browser — watcher, rebundle, SSR refresh, and the three SSE event types.SSR on a Worker (adapter mode)How a prerender = false zfb page actually runs in production — the two-layer worker output, the ASSETS-first dispatch, and the AsyncLocalStorage trick behind getCloudflareContext().Client-Side Routing & View TransitionsTurn zfb into an SPA with soft-swap navigation, View Transition animations, and link prefetching.PluginsAuthor and consume zfb plugins — the four lifecycle hooks, virtual modules, import aliases, and dev-only injected routes.