Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gatsbyで静的サイト生成/2019-12-14-yuruit-vol8
Search
Satoshi SAKAO
December 14, 2019
Technology
0
210
Gatsbyで静的サイト生成/2019-12-14-yuruit-vol8
ゆるゆるIT勉強会 feat.Reedex 8で発表した資料です.
Satoshi SAKAO
December 14, 2019
Tweet
Share
More Decks by Satoshi SAKAO
See All by Satoshi SAKAO
Testcontainers/2024-11-20-llt32
ottijp
0
52
Pkl/2024-04-17-llt31
ottijp
0
79
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
150
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
ottijp
1
260
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
150
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
160
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
140
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
84
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
100
Other Decks in Technology
See All in Technology
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
6
1.4k
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
390
AIのAIによるAIのための出力評価と改善
chocoyama
1
510
Prox Industries株式会社 会社紹介資料
proxindustries
0
210
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
380
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
1.1k
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
7
770
UIテスト自動化サポート- Testbed for XCUIAutomation practice
notoroid
0
110
OAuth/OpenID Connectで実現するMCPのセキュアなアクセス管理
kuralab
5
880
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
0
890
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
150
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
3
1.1k
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Become a Pro
speakerdeck
PRO
28
5.4k
How STYLIGHT went responsive
nonsquared
100
5.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Git: the NoSQL Database
bkeepers
PRO
430
65k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Navigating Team Friction
lara
187
15k
Transcript
Gatsbyで静的サイト生成 Satoshi SAKAO ゆるゆるIT勉強会 Vol.8 2019/12/14 (Sat) 1
話すひと 2 インフォコム株式会社 品質マネジメント推進室 ソフトウェアエンジニア JS (ES6) / Node.js /
GCP / iOS (Swift) 猫,自作キーボード Satoshi SAKAO @ottijp
経緯 • はてなブログをカスタムドメイン化したかった • CMSサービスに頼らず自分のコンテンツを自分で持ちたい • WordPressは使ってみたけど辛かった • 会社の勉強会でGatsbyを紹介してた人がいた 3
4 を知ってる?
Gatsbyってなんぞ • 静的サイトジェネレータ • Node.jsのフレームワーク • データソースから取得したコンテンツをもとに ビルドして静的サイトを組み立ててくれる • JAMstackアーキテクチャ(後述)を実現できる
5 https://www.gatsbyjs.org/
適用 • ブログ • コーポレートサイト • イベントサイト • アーティストの公式Webサイト 6
→静的な特性が強いサイト
Gatsbyがやること 7 データソース ビルド デプロイ CMS Markdown データ Webサーバ HTML
CSS JavaScript GraphQL react
8 動的と静的
違い 9 API Webサーバ Webサーバ Appサーバ Markup (ビルド) 動的(e.g. WordPress)
静的(JAMstack) JS
静的であることの利点 • 高スケール • 高レスポンス • 高可用性 • 高セキュリティ 10
API Webサーバ Markup (ビルド) 静的(JAMstack) JS
静的であるがゆえの制約 • ビルド時間(1文字変更でもフルビルドが必要) • 現状80記事で2分くらい @Netlify • 動的機能に工夫が必要 • サイト内検索
→ Elastic Search, Googleカスタム検索 • コメント → DISQUS • 予約投稿 → 自前でGitHub + CloudFunctions 11
12 まとめ
まとめ • Gatsbyで静的サイト(JAMstack)を作れる • 静的サイトでパフォーマンスやセキュリティが向上する • 銀の弾丸ではないが,静的性が活かせるケースにおいて 使ってみてはどうでしょう! 13
14 Appendix
ブログURL 15 https://blog.ottijp.com/
WordPressが辛かったこと • Markdownプラグインの方言が合わない • 勝手に出力が変わる(何が悪さしてるのかトレースしづらい) • スタイルが思い通りにならない • 全体をコードで管理できない 16
Netlifyを使ったデプロイフロー 17
CloudFunctionsを使った予約投稿 18
JAMstack • JavaScript, API, Markup • サーバ側で処理せず,クライアントでJavaScriptで処理する • それ以外で必要なこととAPIを利用する •
データとテンプレートを使って事前にビルド(Markup)する 19
20 余談: 困っていること(SEO関係)
LightHouseとPageSpeedで全然スコアが違う 21 LightHouse PageSpeed (Desktop) PageSpeed (Mobile)
Search Consoleの「クロール済み - インデックス未登録」が徐々に増えちゃう 22
23 だれか教えてください
参考 • Building and Deploying for the Modern Web with
JAMstack - Guillermo Rauch | JSConf JP • https://jsconf.jp/2019/talk/guillermo-rauch • Twitter “#jsconfjp_a since:2019-11-30_15:30:00_JST until:2019-11-30_16:09:00_JST” • 今日から手を出すJAMstack • https://4rchiv3s.solit4ry.io/tech/marmalade/ 24