コンセプト zfb を選ぶ zfb がプロジェクトに合うのはどんなときか、合わないのはどんなときか、そしてスケールのスイートスポットはどこか。 設計哲学 なぜ zfb は意図的に狭いままでいるのか、そしてなぜ AI 時代がそのバランスを「プラグインよりレシピ」へとさらに傾けるのか。 アーキテクチャ概要 zfb のランタイムスタックをトップダウンで捉えるメンタルモデル — 2 つのバンドル、何がどこで動くのか、そしてなぜ Hono/Workers の形が安定したコントラクトなのか。 エンジンとフレームワーク zfb はエンジン、フレームワークがその上に乗る フロントマター MD/MDX の YAML と TSX の export const literal、統一された JSON 表現 ルーティング pages/ 配下のファイルシステムルーティングが zfb で URL にどうマッピングされるか。 動的ルート paths() の形と、params と props の渡し方 Markdown と HTML ページ .md と .html を .tsx と同様にページエントリとして使う方法 Content Collections Define typed collections of Markdown content in zfb.config and load them from pages. MDX Components MDX エントリがレンダリング可能な React/Preact コンポーネントとしてページに届く仕組みと、components prop で個々の要素をオーバーライドする方法。 カスタムディレクティブ MDX ディレクティブレジストリで Rust を書かずにディレクティブを追加する データ zfb で構造化データを取り込む 3 つの選択肢 — コンテンツコレクション、データコレクション、プレーンな TS モジュール。 スタイリング グローバル CSS、Tailwind v4、そして zfb におけるコンポーネントスコープなスタイリングの位置づけ。 静的アセット 画像・SVG・フォント・favicon・robots.txt など、バイト単位でそのまま配信するファイルを zfb の public/ ディレクトリ経由でどう配信するか。 Islands クライアントでインタラクティブなコンポーネントを "use client" でマークすると、zfb がブラウザでハイドレートします。 HTML 以外のページ ファイル名規約と frontmatter.extension で sitemap.xml.tsx などを出力する ビルドパイプライン zfb がプロジェクトをビルド済みサイトに変えるまでの端から端までのツアー。 インクリメンタルリビルド zfb の依存グラフが、各リビルドを実際にファイル変更の影響を受けるページだけに限定する仕組み。 dev モードのライフサイクル .tsx ファイルを保存してからブラウザで変更が見えるまでに何が起こるか — ウォッチャー、リバンドル、SSR リフレッシュ、そして 3 つの SSE イベント種別。 Worker 上の SSR(アダプターモード) prerender = false の zfb ページがプロダクションで実際にどう動くか — 2 層のワーカー出力、ASSETS 優先のディスパッチ、そして getCloudflareContext() を支える AsyncLocalStorage のトリック。 プラグイン zfb プラグインの作成と利用 — 4 つのライフサイクルフック、仮想モジュール、インポートエイリアス、開発専用の注入ルート。