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
Next.jsチョットデキル!サイトの規模やページ特性に合わせた開発テクニック
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
hanetsuki
December 03, 2022
Technology
3
2.4k
Next.jsチョットデキル!サイトの規模やページ特性に合わせた開発テクニック
https://conf2022.pwanight.jp/
で登壇したスライドです。
hanetsuki
December 03, 2022
Tweet
Share
More Decks by hanetsuki
See All by hanetsuki
AIを用いて実践してきた開発方法について
hanetsuki
1
74
ソフトウェア開発ナニモワカラナイ
hanetsuki
0
210
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
2.1k
Next.jsの今年一年を振り返る
hanetsuki
1
1.5k
大規模メディアにおけるNext.js とVercelのレンダリングとキャッ シュ戦略について
hanetsuki
4
3.4k
Jamstackで事前に欲しいパーツ群を洗い出す
hanetsuki
1
430
2022年最新版 GatsbyJS + TypeScript + microCMS でブログを作る。
hanetsuki
1
12k
Next.jsで静的サイトを作成時 よく使っているライブラリまとめ
hanetsuki
5
18k
Next.jsで整える。デザインとロジックの分離
hanetsuki
5
4.7k
Other Decks in Technology
See All in Technology
DDD×仕様駆動で回す高品質開発のプロセス設計
littlehands
5
2.3k
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
350
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
qa
0
210
PostgreSQL 18のNOT ENFORCEDな制約とDEFERRABLEの関係
yahonda
0
110
Phase08_クイックウィン実装
overflowinc
0
1.6k
FastMCP OAuth Proxy with Cognito
hironobuiga
3
170
_Architecture_Modernization_から学ぶ現状理解から設計への道のり.pdf
satohjohn
2
730
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
280
Navigation APIと見るSvelteKitのWeb標準志向
yamanoku
2
110
データマネジメント戦略Night - 4社のリアルを語る会
ktatsuya
1
210
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
4
360
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
240
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
150
GraphQLとの向き合い方2022年版
quramy
50
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
840
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Embracing the Ebb and Flow
colly
88
5k
Speed Design
sergeychernyshev
33
1.6k
Statistics for Hackers
jakevdp
799
230k
Tell your own story through comics
letsgokoyo
1
870
Building AI with AI
inesmontani
PRO
1
820
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Transcript
None
None
None
None
みなさんは、 使ってますか?
ってなんだっけ?
Next.jsは、React をベースに開発されたオープンソースの JavaScriptフ レームワークです。 Webフロントエンドライブラリである React の機能性を保ちつつ、React より も実用性が向上しました。 パフォーマンスやSEO、アプリを効率的に開発できる機能が組み込まれてい
るため、機能の実装コストを抑えた開発ができます。 「SSG・ISR・SSR」「next/image」「next/link」「API Routes」 ってなんだっけ?
のメリットを活かしたい! この想いから以下の3つを主な課題として開発を進めました。 SSG・ISR・SSRを有効的に活用する“使いどころ”は? どのようなパッケージを使えば効果的か? ホスティング先によってどのような違いがあるのか?
本格的にJamstackでのサービス開発に携わっ た約1年間で得たポイントを、 開発サイトの規模ごとにまとめています。 守秘義務の都合上、具体例を伏せている箇所もございますが、みなさまの Next.jsを活用した開発 への一助になれば幸いです。 テーマ
• Next.jsに精通している方 • Webサイトやメディアサイトなどの開発に関 心がある方 • Jamstackに興味がある方 ターゲット
小規模サイト コーポレートサイト・イベント特設サイト
小規模サイト コーポレートサイト・イベント特設サイト レンダリングによって変わる ホスティング先の選択肢
小規模サイト コーポレートサイト・イベント特設サイト Next.jsの機能をフル活用することを考えれば、最適なのはや はりVercel Next.jsをSSGのような使い方をするのであればその限りでは ありません。 FTPやAWS S3などでも運用が可能です。 レンダリングによって変わるホスティング先の選択肢
小規模サイト コーポレートサイト・イベント特設サイト クライアントのご要望もあって S3での対応となりました。 S3はGitHubを繋げて継続的デリバリー( CD)を組むことができません。 ですので、GitHub Actionsを用いてCDを実現する形となりました。
小規模サイト コーポレートサイト・イベント特設サイト GitHub Actionsで考慮しなければならないこと 本番環境やステージング環境に紐づくブランチのpushなどを検知 して、CDを実行する。 headlessCMSで新規作成・更新・削除の操作を受け取り、CDを 実行する。 今回利用したmicroCMSには、webhookによるGitHubActionsへの繋ぎ込み 機能がついていたのでそちらを利用いたしました。
小規模サイト コーポレートサイト・イベント特設サイト 小規模サイト開発 あまり手間暇かけずに作成することができました。 小規模サイトであれば、利用する機能的な部分をスターターキットなどにま とめてしまえば導入コストを低くした上で、webサイト制作が可能になるなと 感じました。 Next.jsをSSGだけで使うのは勿体無い気はする。SSGだけならより尖った ものが出てきているので併せて検討していきたい
中規模〜大規模サイト メディアサイト
速報性を重要視すべきか 中規模〜大規模サイト メディアサイト
速報性を重視しないページならSG 中規模〜大規模サイト メディアサイト 例:プライバシーポリシーなど更新頻度の低いページ 速報性を重視するページならISR 例:メディアの詳細ページなどコンテンツ総量が多いページ 動的な処理を実施したいならSSR 例:一覧ページや検索結果などのページ 速報性を重要視すべきか
sitemap.xmlの生成 中規模〜大規模サイト メディアサイト
この規模のsitemap.xmlは、オンデマンドに作成するページ (ISR・SSR)があるため、動的に生成する必要があります。 中規模〜大規模サイト メディアサイト sitemap.xmlの生成 実際の開発ではnext-sitemapというnpmパッケージを利用して sitemapの生成をしています。
設定を少し加えるだけでNext.jsのビルド時にsitemap.xmlを生成してくれます。 中規模〜大規模サイト メディアサイト next-sitemapの特徴 動的にsitemap.xmlを生成するための関数(getServerSideSitemap)も用意されていま す。 詳しい利用方法は割愛しますが、興味がある方は是非調べてみてください。 https://github.com/iamvishnusankar/next-sitemap#readme
microCMSでコンテンツを管理しつつ、その他サービス関連の APIを用いて、よりリッチな 体験を可能にしたメディアサイト。 Next.jsとVercelの機能をフル活用しました。 中規模〜大規模サイト メディアサイト
中規模〜大規模サイト開発 microCMSだけではなく、独自のデータベースとの連携や、その他外部サー ビスとの連携など、Jamstackの強みの一つと考えている組み合わせやす さも感じることができました。 Next.jsの各種レンダリングによって、ページの 機能に寄り添った最適な体 験をユーザに届けることができたと感じました。 中規模〜大規模サイト メディアサイト
まとめ
約1年間、WebサイトやWebアプリの開発にNext.jsを使ってみて、プ ロジェクトによって意識しなければならないことなどが変化することを 身にしみて感じました。 JamstackやNext.jsに関わり始めてインプットとアウトプットの連続で した。これからもNext.jsの扱いやJamstackのことについて深く知見 を貯めていけたらと思います。
これからのWeb開発 これまでのWebサービスは「発信」そして「共 有」と役割を広げてきましたが、 Next.jsや Jamstackの登場と進化によって、 もっとユーザーに寄り添った 「体 験」の提供にシフトしていく と私たちは考えています。
これからも の可能性を追求していきます
None
None