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
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next....
Search
Leko
October 23, 2025
Technology
380
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
Leko
October 23, 2025
More Decks by Leko
See All by Leko
コンセプトの海の泳ぎ方
leko
0
55
エンジニアと治療アプリ®
leko
0
1.3k
Node.jsにContributeして一ヶ月でCollaboratorになった
leko
5
7.6k
React NativeアプリでE2Eテストを回してみた
leko
8
3k
IntersectionObserverはいいぞ
leko
3
3.2k
React Nativeで医療機器作ってます
leko
4
1.8k
趣味では使っているが 仕事には使ってないツール
leko
1
250
レガシーな開発現場にUTを入れてCIを導入した話
leko
0
6.5k
MySQLがゆるふわなのはどう考えてもSQLモードが悪い!
leko
1
360
Other Decks in Technology
See All in Technology
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
880
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
860
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
170
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
690
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
Snowflakeと仲良くなる第一歩
coco_se
4
430
AIはどのように 組織のアジリティを変えるのか?
junki
1
500
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
870
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
130
Chainlitで作るお手軽チャットUI
ynt0485
0
210
RAG を使わないという選択肢
tatsutaka
1
200
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
130
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
840
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
A Modern Web Designer's Workflow
chriscoyier
698
190k
GitHub's CSS Performance
jonrohan
1033
470k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
940
Building Applications with DynamoDB
mza
96
7.1k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Building Adaptive Systems
keathley
44
3k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Transcript
Nihonbashi.js #10 JSConf JPのwebsiteを GatsbyからNext.jsに移行し た話 - Next.jsの多言語静的サイトと課題 - 2025/10/23
Leko
これの話です
差分の行数がすごいことになってるのは、過去年度 のサイトをフリーズするためビルド成果物を直接コ ミットしてるから Context どういう立場 から喋ってる の
Context 1円ももらっていません、ボランティアです 当日の司会とかはせず裏方やってます Node学園祭 JSConf JP と私の関わり • Node学園祭 ◦
2017: 参加者 ◦ 2018: 懇親会番長 • JSConf JP ◦ 2019: Webサイトのオーナー ▪ 寒くてネットが超弱かった回、当日 PWA対応 ◦ 2021: 同上 ◦ 2022: 同上 ◦ 2023: 同上 ◦ 2024: 同上 ◦ 2025: 同上(Next.jsに移行した)
styled-component s 柔軟にいけそうなもので好み 当初からの技術スタック Gatsby 流行ってた、 Contribute するく らいには詳しかった GitHub
Pages 無料ホスティング CI/CD はNetlify
JSConf JP 発足当時と今 6 Context Work Sans 2018-2019はGatsby & styled-componentsの方が
Next.js & TailwindよりもDL数多かった頃 Nulla porttitor Nulla porttitor Cymbal
年度ごとにや ること 1. 最新の年度のフォルダをコピーして新年度作成 2. 大体ビルドが通らない のでdepsのアップデートや調整 ◦ メジャーアップデートなどもよしなに対応 3.
去年度のビルド成果物をコミットし静的サイトに ◦ Nodeのバージョン変動で動かなくなるものをメンテし続 けるのしんどいので... 4. 前回固有のコンテンツをリセット 5. Readyじゃないメニュー・UIの調整 6. Depsをビルドが通る範囲でなるたけ最新に upgrade 7. コミット 8. (CFP・スポンサー申込フォームの掲載) 9. (スポンサーの掲載) 10. (スピーカー・トーク・スケジュールの反映) 11. (TBDだった内容の都度アップデート) 12. (チケット販売開始) 7 Context 毎年浦島太郎の気分
• 昨今主流と言えるなんらかの静的サイトが作れる技術に乗り 換えよう ◦ 新Contributorの獲得・学習コスト削減 ◦ コントリビュータにとってJSConf JPにコミットすること が対外的な成果の1つに なってほしい
▪ レガシーメンテ屋さんを無償で自ら望んでやりたが る人は少ない • All in one型でエコシステムに強依存しないものを選ぶ ◦ 浦島コスト削減のため • Claude Code契約してるしガッとやっちまうか よろしい、 ならば移行だ 8 Context
TailwindCSS ある程度はコンポーネント化し たけどデザインシステム的なも のは依然持ってない 現在の技術スタック Next.js 前述の通り GitHub Pages 無料ホスティング
CI/CD はGitHub Actions
移行開始 10 Migration styled-componentsでゴリゴリCSSを書いてしまっ ていたのでまぁまぁ気合いは必要だった • Gatsby & gatsby-* &
styled-componentsをdepsから 消し切る • 別物にならない程度に互換性を保つ ◦ 多少見た目や機能が変わっても大人しい実装にするこ とを優先 • 全コンテンツ移行 ◦ TOP ◦ スピーカー一覧 ◦ スポンサー一覧 ◦ タイムテーブル ◦ 会場・アクセス ◦ 多言語対応、モバイル対応 • 改善 ◦ しっくりきてなかったカラーパレットの緑色 ◦ 各所をType-Safeに ◦ OG画像の刷新、トークごとのOG画像の生成
Special Thanks 11 • TSKaigi 2025 - https://2025.tskaigi.org/ ◦ https://github.com/tskaigi/tskaigi2025-web-site
◦ Nextで作られてる ◦ トークごとのOG画像を@vercel/ogで生成してる • Static ExportsなどハマりどころのWorking Example • 多言語対応は未対応だったがそれ以外ほぼ参考にした Migration
多言語対応 • https://next-intl.dev/ を採用 • i18nextシリーズより新しく歴史的経緯が少なく無理が少な い、頑張らなくても型が強い ◦ 導入を検討してる方は詳しくはコード読んでください •
トークなどユーザ入力コンテンツの効率的な翻訳管理はまだ 確立できてない ◦ 今はCFPの原文ママを載せてる ◦ LLMの対応によりDeepL API 規約のような制約は減っ たが、、、 ▪ 日英両方書いてもらうのはちょっと大変 ▪ 翻訳のニュアンスあってるか確認するなどスタッフ 以外の工数もかかっちゃう 12 Migration 多言語前提のカンファレンス運営者の皆さんどうし てますか?
OG画像 13 Migration • 愚直に@vercel/og ◦ 見た目はTSKaigiやZennをリスペクトしよしなに • ハマりポイント ◦
Google Fontsをビルド時に動的に呼ぶとめちゃめちゃ ビルド不安定になるのでコミットした方が良い ◦ <img />を利用する際リダイレクトは自前で解く必要が ある?(要検証 ▪ github.com/{username}.png がエラーに
プチ改修 14 コントラスト比の調整とかもしてみましたが、改善の 余地あり Migration • Secondaryの色を緑から黒に変更 • タイムテーブルの情報量増やした( busyかも
• よく見る普通の技術にしたのでContributeお待ちしておりま す ◦ TSKaigiのwebsiteに大感謝 ◦ Claude Code様様。なかったら心折れてた • CFP多言語対応の正解は未だ見えず。
next-intlは良い • 私以外のメンテナ ◦ martinやyu1k、Himepon氏などアクティブにメンテし てくれるContributors マイグレーショ ンしたよ 15 After Migration
↓ Before / After 16 After Migration パフォーマンスに明確に悪いことはしないようにして るけど、特別チューニングを頑張ったわけでもない デフォルトのまま使ってもある
blackboxに程度いい 感じにしてくれるのが Next.jsの魅力の1つ
Leko / れこ 取締役CTO at Yuimedi, Inc. • X: @L_e_k_o
• GitHub: Leko • JSConf JPのContributionに興味ある方 • JS x AI(LLM)で医療業界のデータ利活用に 変革を起こしたい方 懇親会で話しましょう! Thanks!