なぜAstroか
AstroはデフォルトでJavaScriptをゼロで出荷する。コンテンツはサーバー上でプレーンなHTMLにレンダリングされ、インタラクティブなアイランドは指定した場所だけでハイドレートされる。コンテンツ中心の個人サイト——ブログ、研究、ギャラリー——にはまさに欲しいトレードオフだ。
45分の道のり
npm create astro@latest— ブログテンプレートを選び、TypeScript strictにする。src/content.config.tsで zod スキーマ付きのコンテンツコレクションを定義する。- 最初の
.mdx記事を書く — フロントマターはビルド時に検証される。 getStaticPaths()+render()で[slug].astroページを追加する。- デプロイ:
astro buildが完全に静的なdist/を生成し、どこにでもホストできる。
アイランド:みんなが見落とす部分
<Hero client:load /> <!-- すぐにハイドレート -->
<Chart client:visible /> <!-- ビューポートに入ったらハイドレート -->
<Comments client:idle /> <!-- ブラウザがアイドル時にハイドレート -->
ファーストビューより下のものには client:visible を使おう。Lighthouseスコアが感謝する。
次は何
[locale] 動的ルートでi18nを追加する — それは別のレッスン。