0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Astro】React/Vue/Svelte全部使える!5万スター超えの次世代Webフレームワーク

Posted at

この記事は ゆっくりテックウォッチ Advent Calendar 2025 の 23 日目の記事です。

個人開発の「ゆっくり動画スタジオ」でGitHub人気リポジトリの解説動画を自動生成しており、その分析データをもとに本記事も生成しています。

TL;DR

  • React/Vue/Svelteを同一プロジェクトで混在可能
  • Island Architectureで必要な部分だけJSを読み込み、爆速表示
  • Vercel/Netlify/Cloudflareへワンクリックデプロイ対応

このリポジトリについて

リポジトリカード

軽量出力と優れたDXを両立するモダンWebサイトビルドツール

Astroは静的サイト生成(SSG)とサーバーサイドレンダリング(SSR)を両立し、React/Vue/Svelteなど複数のUIフレームワークを同一プロジェクトで使用できるWebフレームワークです。Island Architectureで必要な部分だけJavaScriptを読み込み、高速なページ表示を実現します。

項目 内容
リポジトリ withastro/astro
スター数 :star: 55,032
言語 TypeScript
ライセンス MIT License
作成日 2021-03-15

なぜ今注目されているのか

ReactとVue、どっちを使おうか迷ったことありませんか?

フレームワーク選びに時間を費やしたり、プロジェクトごとに異なる技術スタックを使い分けたりする煩雑さに悩んでいる開発者は多いのではないでしょうか。

Astroなら、好きなフレームワークを自由に組み合わせて使えます。しかもIsland Architectureにより、出力されるJavaScriptは最小限。高速なサイトを簡単に構築できます。

スター推移

スター推移グラフ

2021年3月に公開されると、6月には1,400スターを突破。2022年8月のv1.0リリース時には、わずか1週間で1万スターから1万8千スターへと急成長しました。

その後も継続的に成長を続け、2025年12月現在では5万5千スターを超えています。コンテンツ重視のWebサイト構築において、Next.jsに次ぐ選択肢として確固たる地位を築いています。

主な機能・特徴

リポジトリフィーチャーカード

1. React/Vue/Svelteを同一プロジェクトで混在可能

Astroの最大の特徴は、フレームワーク非依存であること。同じプロジェクト内でReact、Vue、Svelte、Solid、Preactなどを自由に組み合わせて使えます。

---
// .astroファイル内で複数フレームワークを使用
import ReactComponent from '../components/ReactButton.jsx';
import VueComponent from '../components/VueCard.vue';
import SvelteComponent from '../components/SvelteModal.svelte';
---

<ReactComponent client:load />
<VueComponent client:visible />
<SvelteComponent client:idle />

これにより、過去に作ったコンポーネントを捨てることなく、新しいプロジェクトで再利用できます。チーム内でReact派とVue派がいても問題ありません。

2. Island Architectureで必要な部分だけJS読み込み

Astroは Island Architecture(アイランド・アーキテクチャ) を採用しています。

  • ページの大部分は静的なHTMLとして出力
  • インタラクティブな部分(島)だけがJavaScriptを読み込む
  • 結果として、JavaScriptの読み込み量が劇的に減少

イメージとしては、HTMLの海に浮かぶ「インタラクティブな島」だけがJavaScriptを持っている状態です。これにより、Lighthouseスコア90点以上を簡単に達成できます。

3. 静的サイト生成とSSRを柔軟に切り替え

Astroはデフォルトで静的サイト生成(SSG)ですが、ページ単位でサーバーサイドレンダリング(SSR)に切り替えられます。

// astro.config.mjs
export default defineConfig({
  output: 'hybrid', // ページごとにSSG/SSRを切り替え
  adapter: vercel(), // デプロイ先のアダプターを指定
});
  • SSG: ブログ、ドキュメント、ポートフォリオなど
  • SSR: ダッシュボード、認証が必要なページなど

用途に応じて最適なレンダリング方式を選べます。

4. Vercel/Netlify/Cloudflareへワンクリック連携

主要なホスティングプラットフォームへの公式アダプターが用意されています:

  • Vercel: @astrojs/vercel
  • Netlify: @astrojs/netlify
  • Cloudflare: @astrojs/cloudflare
  • Node.js: @astrojs/node

アダプターをインストールするだけで、エッジファンクションやサーバーレス環境へのデプロイが可能になります。

技術スタック

Viteベースのモダンビルドシステムと多様なUIフレームワーク統合。

分類 技術
主要技術 TypeScript, JavaScript, Vite
フレームワーク/ライブラリ React, Vue, Svelte, Solid, Preact, Alpine.js, Tailwind CSS
インフラ Node.js, Vercel, Netlify, Cloudflare, Deno
連携サービス MDX, Markdoc, RSS, Sitemap, Partytown

ユースケース

ユースケース1: フロントエンド開発者

背景: Web制作会社で働く3年目のエンジニア佐藤さんは、ReactでSPAを作ってきましたが、SEOの問題でクライアントから不満が出ていました。

課題: SSG対応するにはGatsbyの学習コストが高く、既存のReactコンポーネントを捨てたくない。

解決策: Astroに移行し、既存のReactコンポーネントをそのまま使いつつSSG化。@astrojs/reactをインストールするだけで、既存コンポーネントがそのまま動作。

結果: 企業サイトをAstroでリビルドし、Lighthouseスコア90点以上を達成。クライアントから「サイトが速くなった」と評価され、追加案件を獲得しました。

ユースケース2: 個人開発者

背景: 副業でブログを運営している会社員の田中さんは、WordPressでブログを運営していますが、サーバー代とプラグイン管理が負担でした。

課題: WordPressのセキュリティ更新が面倒で、表示速度も遅い。

解決策: Astroでブログを再構築し、Netlifyの無料枠でホスティング。Markdownでコンテンツ管理、Tailwind CSSでスタイリング。

結果: サーバー代ゼロでCore Web Vitals全項目緑。管理の手間から解放され、コンテンツ制作に集中できるようになりました。

ユースケース3: スタートアップCTO

背景: SaaSスタートアップの技術責任者、鈴木さんは、エンジニア採用でReact派とVue派がいて技術選定が難航していました。

課題: どちらかに統一すると、片方の採用候補を逃すことになる。

解決策: Astroを採用し、チームがそれぞれ得意なフレームワークで開発。マーケティングサイトをAstroで構築し、メンバーごとに好みのフレームワークを使用。

結果: 採用の幅が広がり、開発速度も向上しました。

競合との比較

Next.jsとの違い

観点 Astro Next.js
主要ユースケース コンテンツサイト、ブログ、ドキュメント Webアプリケーション、SaaS
フレームワーク対応 React/Vue/Svelte/Solid等 Reactのみ
デフォルト出力 静的HTML(JS最小) クライアントサイドJS多め
学習曲線 比較的緩やか やや急(App Router等)

Astroを選ぶべきタイミング: コンテンツ重視のサイトで、パフォーマンス最優先の場合。ブログ、ドキュメント、マーケティングサイトなど。

Gatsbyとの違い

観点 Astro Gatsby
フレームワーク 複数対応 Reactのみ
ビルド速度 Viteで高速 遅い傾向
プラグインエコシステム 成長中 成熟

Astroを選ぶべきタイミング: Reactに縛られたくない場合、ビルド速度を重視する場合。

始め方

インストールは1行で完了します:

npm create astro@latest

対話式のセットアップで、テンプレートを選択してすぐに開発開始できます。

# 開発サーバー起動
npm run dev

# ビルド
npm run build

# プレビュー
npm run preview

既存プロジェクトにAstroを追加する場合:

npm install astro

# React統合を追加
npx astro add react

# Vue統合を追加
npx astro add vue

詳細は公式ドキュメントを参照してください。

まとめ

  • フレームワーク非依存: React/Vue/Svelte等を同一プロジェクトで混在可能
  • Island Architecture: 必要な部分だけJSを読み込み、爆速表示を実現
  • 柔軟なレンダリング: SSGとSSRをページ単位で切り替え可能
  • 簡単デプロイ: Vercel/Netlify/Cloudflareへワンクリック連携
  • 活発なコミュニティ: 5万5千スター、13,000以上のコミット

ReactもVueもSvelteも選べないなら、全部使えばいい。今すぐnpm create astro@latestで体験しよう!


動画で詳しく解説しています

YouTubeチャンネル「ゆっくりテックウォッチ」では、GitHub の注目リポジトリをゆっくり解説しています。

この記事で紹介した Astro の解説動画も公開していますので、ぜひご覧ください!

チャンネル登録よろしくお願いします!


関連リンク


この記事は AI によって自動生成されました。内容に誤りがある可能性があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?