SvelteKitとは?Svelteとの違い・特徴・始め方をわかりやすく解説
SvelteKit(スベルトキット)は、UIフレームワークであるSvelteを土台に、Webアプリ全体を構築するための公式フルスタックフレームワークです。ReactにおけるNext.js、VueにおけるNuxtと同じ立ち位置にあたります。この記事では「SvelteKitとは何か」を出発点に、Svelteとの違い、ファイルベースルーティングやSSR・SSGといった特徴、新しいsv CLIでの始め方、レンダリング方式の使い分けまでを、初めての方にも分かるように整理します。
まとめ:SvelteKitのポイントを先に押さえる
先に結論です。SvelteはUIコンポーネントを作るためのフレームワーク、SvelteKitはそのSvelteでアプリ全体(ルーティング・サーバー処理・ビルド・デプロイ)を構築するための公式フルスタックフレームワークで、両者の関係は「ReactとNext.js」「VueとNuxt」と同じです。ファイルベースのルーティング、サーバーサイドレンダリング(SSR、既定)、静的サイト生成(SSG)、APIエンドポイントなどをまとめて提供し、デプロイ先に応じた「アダプター」で最適化して書き出せます。プロジェクトは新しいsv CLIのnpx sv createで作成し、起動したローカル開発サーバー(既定ではポート 5173)で表示を確認します。以下で、Svelteとの違い・特徴・始め方・レンダリングの使い分けを順に見ていきます。Svelte本体の基礎はSvelteとは?React・Vueとの違いから始め方・将来性まで徹底解説でまとめています。
SvelteKitとは?基本を理解する
SvelteKitは、Svelteの作者であるRich Harris氏らのチームが開発する、Svelte公式のアプリケーションフレームワークです。2022年12月に1.0がリリースされ、現在は2系として継続的に進化しています。Svelteが「画面の部品(コンポーネント)」を作る道具であるのに対し、SvelteKitは「それらを組み合わせて1つのWebアプリやサイトとして成立させる」ための土台を提供します。
SvelteとSvelteKitの違い
最も多い疑問が「SvelteとSvelteKitは何が違うのか」です。Svelteはコンポーネント単位でUIを構築するフレームワーク、SvelteKitはそのSvelteに、ルーティング・サーバーサイドの処理・ビルド・デプロイといった「アプリ全体に必要な仕組み」を加えたものです。小さなUI部品だけならSvelte単体でも作れますが、複数ページを持つサイトや、サーバー処理を伴う本格的なアプリを作るならSvelteKitを使う、という住み分けになります。
SvelteKitで何ができるか
SvelteKitは、本格的なWeb開発に必要な機能を一通り備えています。具体的には、ファイル構造に沿って自動でURLが決まるルーティング、初期表示をサーバーで生成するSSR、事前にHTMLを生成するSSG、サーバー側で動くAPIエンドポイント、そしてデプロイ先に合わせて出力を最適化するアダプターなどです。これらを個別にツールを組み合わせて用意する必要がなく、1つのフレームワークでまとまっているのが利点です。
SvelteKitの主な特徴
SvelteKitの特徴を、開発で実際に触れる順に整理します。
ファイルベースのルーティング
SvelteKitのルーティングは、src/routesディレクトリのファイル・フォルダ構造がそのままURLになります。各ページは+page.svelteとして配置し、データ取得は+page.jsや+page.server.js、共通レイアウトは+layout.svelteで定義します。たとえばsrc/routes/about/+page.svelteを作れば/aboutに、src/routes/blog/[slug]/+page.svelteを作れば/blog/記事名のような動的ルートになります。フォルダ構造を見ればサイト構造が分かる、直感的な仕組みです。
SSR・SSG・CSRのレンダリング戦略
SvelteKitは既定でSSR(サーバーサイドレンダリング)を行い、初期表示が速くSEOにも有利なHTMLを返します。さらにページ単位で、ビルド時にHTMLを生成するSSG(静的サイト生成)や、クライアント側で描画するCSRに切り替えられます。ページごとに最適な方式を選べるのが強みです。
アダプターによる多様なデプロイ
SvelteKitは「アダプター」を切り替えることで、さまざまなホスティング環境に最適化して書き出せます。Nodeサーバー、サーバーレス関数、エッジ環境、静的サイト(adapter-static)などに対応し、VercelやNetlify、Cloudflareといった主要プラットフォームへスムーズにデプロイできます。
Svelte 5・TypeScript・最新機能への対応
SvelteKitは、反応性が刷新されたSvelte 5(runes)を土台にしており、TypeScriptにも標準で対応します。近年は、サーバー側の関数をクライアントから型安全に呼び出せる「リモート関数」(.remote.ts)などの新機能も追加され、APIルートの記述を簡潔にできるようになっています。こうした機能はアップデートで仕様が変わることがあるため、最新の対応状況は公式ドキュメントで確認してください。
SvelteKitの始め方と基本的な使い方
SvelteKitのプロジェクトは、Svelte 5で統合されたsv CLIで作成します。以前はnpm init svelteなどが使われていましたが、現在はsvに一本化されています。Node.js(現行のLTS推奨)が入っていれば、対話形式でテンプレートやTypeScript、各種ツールを選びながらセットアップできます。
# プロジェクトを作成(対話形式でSvelteKitテンプレートを選択)
npx sv create my-app
cd my-app
npm install
# 開発サーバーを起動
npm run dev
起動後、ブラウザでローカル開発サーバー(既定ではポート 5173)を開くと初期画面を確認できます。最初のページはsrc/routes/+page.svelteで、おおむね次のようなシンプルなコンポーネントです。
<script>
let { data } = $props();
let count = $state(0);
</script>
<h1>SvelteKitへようこそ</h1>
<button onclick={() => count++}>クリック数: {count}</button>
プロジェクトの基本構造はシンプルです。アプリのコードはsrcに置き、ページとルーティングはsrc/routes、再利用するコンポーネントやユーティリティはsrc/libにまとめます。画像などの静的ファイルはstatic、ビルドやアダプターの設定はsvelte.config.jsで管理します。役割ごとにディレクトリが分かれているため、規模が大きくなっても見通しを保ちやすい構成です。
レンダリング方式(SSR・SSG・CSR)の使い分け
SvelteKitではページ単位でレンダリング方式を指定できます。更新頻度や用途に応じて選び分けると、表示速度とSEO、サーバー負荷のバランスを最適化できます。たとえば静的なページは、対象ページでexport const prerender = true;と書くだけでSSG化できます。
| 方式 | 生成タイミング | 初期表示 | SEO | 向くページ |
|---|---|---|---|---|
| SSR(既定) | リクエスト時 | 速い | 強い | 動的・最新性重視 |
| SSG | ビルド時 | 最速 | 強い | 更新頻度の低い静的ページ |
| CSR | ブラウザ側 | やや遅い | 弱め | 高インタラクティブなUI |
なお、SvelteKitは既定で「サーバーでHTMLを生成(SSR)し、その後クライアント側でハイドレーションして操作可能にする」動作をとります。上の表のCSRは、こうした初期のSSRを行わず描画をクライアントに寄せた場合の特性を指します。
データ取得はload関数(+page.js/+page.server.js)で行い、ページ表示前に必要なデータをそろえます。サーバー側でしか触れない機密情報は+page.server.js側に置くことで、安全に扱えます。
SvelteKitはどんな開発に向くか
SvelteKitは、軽量で高速なSvelteの利点を活かしつつ、ルーティングやSSR/SSG、デプロイまでを一括で扱えるため、コーポレートサイトやブログ、ダッシュボード、SaaSのフロントエンドなど幅広い用途に向きます。特に、初期表示の速さやパフォーマンスを重視するプロジェクト、少人数で素早く立ち上げたいケースと相性が良好です。一方で、ReactやVueに比べると利用シェアや求人・ライブラリの総量はまだ少なめです。採用すべきかどうかの判断材料はSvelteの将来性は?メリット・デメリットと普及率・採用判断を解説に、React・Vueとの基礎的な違いはReactとVue3の基本概念: 初心者向けガイドに詳しくまとめています。
よくある質問(FAQ)
SvelteKitとは何ですか?
Svelteを土台に、Webアプリ全体を構築するための公式フルスタックフレームワークです。ルーティング・SSR・SSG・APIエンドポイント・デプロイ最適化などをまとめて提供します。
SvelteとSvelteKitの違いは何ですか?
SvelteはUIコンポーネントを作るフレームワーク、SvelteKitはそのSvelteでアプリ全体を構築する仕組みです。ReactとNext.js、VueとNuxtの関係と同じだと考えると分かりやすいです。
Svelte(SvelteKit)の読み方は?
Svelteは「スベルト」と読みます。「しなやか・洗練された」を意味する英語の形容詞が由来です。SvelteKitは「スベルトキット」と読みます。
SvelteKitは無料で使えますか?
はい。SvelteKitはオープンソースのMITライセンスで公開されており、個人開発から商用プロダクトまで追加費用なく利用できます。
SvelteKitでどんなサイトが作れますか?
ランディングページやブログ、コーポレートサイトから、SSRやAPIを伴うダッシュボード・SaaSのフロントエンドまで、幅広く対応できます。ページ単位でSSR・SSG・CSRを使い分けられるのも利点です。
SvelteKitとNext.jsの違いは何ですか?
役割は似ており、どちらも「UIフレームワーク+アプリ構築の土台」というメタフレームワークです。違いは土台のフレームワークで、SvelteKitはSvelte(コンパイラ型・仮想DOMなし)、Next.jsはReactをベースにします。SvelteKitは成果物が軽量になりやすく、Next.jsはエコシステムと事例の豊富さで優位という傾向があります。
SvelteKitは本番運用で使われていますか?
使われています。SvelteKitはSvelte公式のフルスタックフレームワークで、世界中の数多くの本番サイトで採用されています(技術検出サービスのWappalyzerでも数万規模の稼働サイトが確認されています)。Storybook・Tailwind・PlaywrightといったオープンソースのツールやPrismic・Sentryなどの企業も公式にSvelteKitをサポートしており、小規模なサイトから本格的なWebアプリまで実運用に耐えます。