そのシンプルさ、速度、セキュリティの利点から、近年静的サイトジェネレーター(SSG)は、業界で人気急上昇中。ブログ、ドキュメント、ポートフォリオ、ECサイトなどの構築に広く利用されています。

今回は、Svelteを使った静的サイトについてご紹介します。SvelteのSSGによって、ウェブ開発プロジェクトがどれほど効率的になるかという点も注目です。

Svelteの静的サイトジェネレーター

静的サイトジェネレーターとは、簡単に言えば、静的なHTMLCSSJavaScriptファイルで構成されたウェブサイトを生成するツールです。

そしてSvelteは、ウェブアプリケーションを構築する独自のアプローチを採用し、開発者の間で大きな支持を集めているモダンなJavaScriptフレームワークです。

フロントエンドライブラリとフレームワーク(出典: StateofJS)
フロントエンドライブラリとフレームワーク(出典: StateofJS

ReactやVueなど、他のJavaScriptフレームワークとの違いは、実行時ではなく、ビルド時にコードをコンパイルする点にあります。

Svelteの静的サイトジェネレーターは、ビルド時にHTML、CSS、JavaScriptのファイルをすべて生成することから、保守管理や更新が容易になり、高速かつ高性能なウェブサイトを構築することができます。

Svelteの静的サイトジェネレーターを使用するメリットと使用事例

ウェブ開発プロジェクトに多くの人がSvelteのSSGを選ぶ理由はさまざま。以下、いくつか代表的なメリットを押さえておきましょう。

  1. 速度─サーバーがその場でページを生成する必要がないため、瞬時に静的サイトを読み込むことができる。特にECサイトやニュースサイトには理想的。
  2. セキュリティ─ハッキングされる可能性のあるデータベースやサーバーサイドのコードがないため、機密データやトランザクションを扱うサイトに有用。
  3. スケーラビリティ─サーバーサイドのコードがないことから、ボトルネックや制限を心配する必要がない。
  4. 開発しやすさ─Hot Module Replacement(HMR)、サーバーサイドレンダリング、自動コード分割などの機能により、サイトの構築、テスト、デプロイが容易。

使用事例

SvelteのSSGは、以下のような様々なプロジェクトに利用可能です。

  1. 個人ブログ─個人ブログの構築には、SvelteKitやElder.jsのようなSSGが便利。マークダウンとコードのシンタックスハイライトを組み込みでサポートしているため、ブログ記事の作成と公開が簡単。
  2. 企業サイトAstroは、サーバーサイドレンダリング、ページの自動生成、ダイナミックルートなどの機能をそろえていることから、企業サイトの構築に適している。
  3. ECサイト─優れたユーザー体験を生み出し、高速で高性能ECサイトの構築にうってつけ。
  4. ドキュメントサイト─ドキュメントサイトの構築にも有用。
  5. インタラクティブなウェブアプリ─Astroを使用すれば、インタラクティブなウェブアプリケーションも構築可能。

Svelteの静的サイトジェネレーター3選

本題の静的サイトジェネレーターをご紹介する前に、SSGは常に静的ファイルを生成することから、サイトをアクセス可能な状態にするには、オンラインで運用しなければならないことを念頭に置いてください。

スケーラビリティ、信頼性、および高いセキュリティを保証する、Kinstaのアプリケーションホスティングなら、静的サイトの運用が可能です。今後、SSGをより効率的にデプロイし、コンテンツを高速に配信できる、静的サイト専用のホスティングサービスもリリース予定です。

それでは、Svelteを使用した静的サイトジェネレーターを見ていきましょう。

1. SvelteKit

スベルテキット
スベルテキット

SvelteKitは、Svelte上に構築されたSSGで、以下のようなSvelte独自の機能を活かした人気の静的サイトジェネレーターです。

  • コンパイラベースのアプローチ
  • リアクティビティ
  • コンポーネントベースのアーキテクチャ
  • バンドルサイズの小型化
  • 習得が容易

Svelteの開発チームによって構築されており、以下のような理由から、最も優れたSvelteのSSGの1つとされています。

  • サーバーレス関数が組み込まれており、サイトにバックエンド機能を簡単に追加できる(フォームの送信処理、支払処理、データベースとのやり取りなど)。
  • アプリケーションを自動的にコード分割し、各ページに必要なコードのみを読み込むことから、読み込み時間が短縮され、パフォーマンスが向上。
  • ページが読み込まれる前に、そのページのデータを取得可能なため、ページをより速くレンダリングできる。
  • ルーティングが内蔵されているため、複雑なマルチページアプリケーションの作成も容易。

SvelteKitは、YarnやBrilliantなどの多くの人気サイトで利用されており、SvelteのSSGを選ぶなら、SvelteKitは見逃せません。使用方法は、公式ドキュメントで包括的に解説されています。

KinstaでSvelteKitの静的サイトをデプロイする方法

SvelteKitのクイックスタート
SvelteKitのクイックスタート

Kinstaのクイックスタート例をフォークし、アプリケーションホスティングにデプロイすれば、SvelteKitの静的サイトをセットアップすることができます。たった数分で、静的サイトを読み込むURLを取得可能です。

2. Astro

Astro
Astro

Astroは、柔軟かつ効率的に静的サイトを構築することができる最新の静的サイトジェネレーター。高速、軽量、使いやすさが追求された設計で、パフォーマンスとメンテナンスが容易なサイトを構築したい開発者にはうってつけです。

コンポーネント駆動型の開発モデルを軸に設計されており、簡単に再利用可能なコンポーネントを作成し、状態やデータフローを管理することができます。さらに、Svelte、ReactVueなど、お好きなフロントエンドフレームワークでコンポーネントを作成して、Astroのページやテンプレートに統合するということも可能です。

Astroは、ページやコンポーネントをコード(CSS、JavaScript、HTML)の 「島」に分離する、Astroアイランドと呼ばれる独自のアーキテクチャを採用しています。

他にも、以下のような数多くのインテグレーションも利用可能です。

  • MDX
  • 画像最適化
  • Tailwind
  • サイトマップ

Astroは、The Guardian Engineeringをはじめとする、数々の人気ウェブサイトで採用されています。Astroの導入事例ページで、その他のウェブサイトも確認できます。

また、Svelteとの統合を含む詳しい使用方法については、公式ドキュメントをご覧ください。

KinstaでAstroの静的サイトをデプロイする方法

Astroのクイックスタート
Astroのクイックスタート

GitHubの「Kinsta – Hello World – Static Site With Astro」テンプレートをフォークして、簡単にAstroの静的サイトをセットアップ可能です。アプリケーションホスティングにデプロイすれば、すぐにURLを取得できます。

3. Elder.js

Elder.js
Elder.js

Elder.jsは、SEOを考慮して作られた静的サイトジェネレーターです。SEOスペシャリストと開発者の小規模なチームにより、10万件以上のページをもつ大型ウェブサイトを構築する際のSEOの課題や複雑さを解消すべく、ゼロから設計されています。

Elder.jsは、Svelteとシームレスに動作するのが大きな特徴の1つ。再利用可能なUIコンポーネントを作成し、複数のページやプロジェクトで使い回すことができます。

Svelteと統合できることに加え、以下のような魅力的な機能も。

  • 可能な限り多くのCPUコアを使用する最適化されたビルドプロセスによって、動作が驚くほど高速かつ効率的に。Elder.jsのドキュメントによれば、4コアのVMで、データ量の多い1万8,000件のページを持つサイトをわずか8分で生成可能。
  • Svelteテンプレートにデータを送信する前に、データの取得、準備、操作方法を完全に管理できる。
  • 公式プラグインおよびコミュニティによるプラグインを利用できるため、サイトの機能を強化することも可能。
  • ショートコード(CMS静的ファイルにあるコンテンツの長期的な保護に役立つスマートなプレースホルダー)をサポート。非同期で使用できるため、サイト上に動的なコンテンツも容易に追加できる。
  • クライアント側のインタラクティブな操作が必要な部分のみをハイドレートでき、ペイロードサイズを縮小してパフォーマンスを向上できる。

詳しくは、公式ドキュメントをご覧ください。

KinstaでElder.jsの静的サイトをデプロイする方法

Elder.jsのクイックスタート
Elder.jsのクイックスタート

他のSSG同様、Kinstaのクイックスタート例をフォークし、アプリケーションホスティングにデプロイ。数分以内に静的サイトを読み込むURLが生成されます。

Svelteの静的サイトジェネレーターの選び方

最後に、SvelteのSSGを選ぶ際に考慮すべき点をいくつかご紹介します。

プロジェクトの要件

SSG選びの前に、まずはプロジェクトの要件を洗い出すこと。

どのようなウェブサイトを作りたいのか、どの程度複雑なものになるのか、またどのような機能が必要なのかを検討しましょう。これによって、選択肢を的確に絞り込むことができます。

開発者としての経験値

内蔵の開発サーバー、ホットリロード、わかりやすいドキュメントなど、開発作業を楽にしてくれる機能が揃っているかもチェック。開発プロセスがシームレスかつ効率的であれば、素早く、快適にサイトを構築することができます。

コミュニティサポート

そして、コミュニティサポートの確認もお忘れなく。必要な時にはいつでも手を差し伸べてくれる活発なコミュニティが重要です。サイト構築時に問題や疑問が生じても、すぐに解決できるというのは大きな強みとなります。

まとめ

静的サイトジェネレーター(SSG)は、そのスピード、シンプルさ、そして高度なセキュリティによって、年々人気の高まりを見せています。特に、サーバーからの動的なコンテンツや機能を必要としないサイトの構築には理想的です。

SvelteのSSGを使えば、バンドルサイズの縮小や高速レンダリングなど、Svelte独自の機能が利用できて、メリットが満載。読み込みが速く、効率的に動作する静的サイトを作成するなら、間違いなく注目したい選択肢です。

まずは、Kinstaのアプリケーションホスティングの無料利用枠を使って、静的サイトを運用してみませんか?手頃な価格で利用できるホビープランもご用意しています。

次のプロジェクトに、Svelteの静的サイトジェネレーターを採用予定ですか?あるいは、過去に使用したことはありますか?以下のコメント欄で、ぜひお聞かせください。

Joel Olawanle Kinsta

Kinstaでテクニカルエディターとして働くフロントエンド開発者。オープンソースをこよなく愛する講師でもあり、JavaScriptとそのフレームワークを中心に200件以上の技術記事を執筆している。