SJ blog
frontend
Z

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

Astro で静的ブログを作る理由

なぜ今 Astro なのか。Next.js や Hugo との比較も交えながら、Astro の設計思想と静的サイトにおける優位性を解説します。

一言結論

AstroのIslands Architectureはデフォルトでゼロ JS を実現し、インタラクティブな部分だけに JavaScript を注入するため、コンテンツ重視のサイトでは Next.js より圧倒的にパフォーマンスが高い。

Astro とは

Astro は「コンテンツ重視のサイト」に特化したフレームワークです。ブログ、ドキュメントサイト、マーケティングページなどに向いています。

Islands Architecture

Astro の核心は Islands Architecture (アイランドアーキテクチャ) です。

┌─────────────────────────────┐
│  静的 HTML (サーバーでレンダリング)  │
│  ┌───────┐    ┌──────────┐  │
│  │ Island │    │  Island  │  │
│  │ (JS有) │    │  (JS有)  │  │
│  └───────┘    └──────────┘  │
└─────────────────────────────┘

ページの大部分は静的 HTML として配信し、インタラクティブな「島」だけに JavaScript を注入します。

Next.js との違い

AstroNext.js
デフォルト JS0KBランタイム込み
主な用途コンテンツサイトアプリケーション
ルーティングファイルベースApp Router / Pages
データフェッチビルド時SSR/SSG/ISR

シンタックスハイライトは Shiki

Astro は Shiki をビルドインでサポートしています。

def fibonacci(n: int) -> int:
    if n <= 1:
        return n
    return fibonacci(n - 1) + fibonacci(n - 2)

print(fibonacci(10))  # 55
fn main() {
    let numbers = vec![1, 2, 3, 4, 5];
    let sum: i32 = numbers.iter().sum();
    println!("合計: {}", sum);
}

ハイライトはすべてビルド時に処理されるため、クライアント側の JS は ゼロ です。

まとめ

ブログや静的サイトを作るなら Astro は最有力候補です。Next.js のように「なんでもできる」フレームワークではなく、「コンテンツを速く届ける」ことに集中した設計が気持ちいいです。