24
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【JAMstack】Next.js × Firebase で JAMstack なブログサイトを作る①[概要]

Last updated at Posted at 2021-07-08

概要

Next.jsの勉強を始め、公式のチュートリアルでブログサイトを作成しました。
その過程で、JAMstackとういうアーキテクチャを知り、最近勉強していたFirebaseと組み合わせると自分でも作れそうだったので、頑張って作ってみました。

目標は、ブログ記事を投稿・削除すると、自動的にブログサイトに反映されるようにします。またブログサイトは、静的サイト生成(SSG)によって、SEOに強く各ページを高速に表示できるものとします。

記事をひとつにまとめると長くなるので、分割しました。

開発環境

  • Windows10
  • VSCode
  • npm

JAMstack とは

以下の記事で詳しくまとめられています。

アーキテクチャ

今回作成するサービスは、以下のようなアーキテクチャで構成されています。

アーキテクチャ.png

コーディング

コーディング部分は3つに分かれます。

  • ブログサイト:公式チュートリアルに沿って、Next.js [TypeScript]で作成します。Vercelにデプロイします。
  • Hooks:Firebase Storageの変更を監視するHook関数。Firebase Functionsにデプロイします。
  • 管理アプリ:ブログ記事を投稿したり、削除したりするアプリケーションです。Reactで作成し、Firebase Hostingにデプロイします。

JAMstack の動き

① 管理アプリからFirebase Storageに対して、記事の投稿・削除を行います。
Firebase Functionsは、Firebase Storageの変更状態を監視しています。
③ ①の変更により、API経由でVercelにデプロイリクエストを送ります。
④ ブログサイトは静的サイト生成(SSG)で作成されているため、Firebase Storageから記事を取得してビルド・デプロイされます。

これにより、記事の変更に応じて自動的にブログサイトが更新されます。

まとめ

Webサイト・アプリ開発は、今年から始めました。
趣味でやっていて開発の経験が浅いので、効率を無視したコーディングがあるかもしれませんがご容赦ください。

Next >

24
25
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
24
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?