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
ITトレンドのフロントエンドNext.js移行までの道のり
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
株式会社イノベーション(エンジニア)
September 12, 2025
Technology
2.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ITトレンドのフロントエンドNext.js移行までの道のり
株式会社イノベーション(エンジニア)
September 12, 2025
More Decks by 株式会社イノベーション(エンジニア)
See All by 株式会社イノベーション(エンジニア)
月18万行の コーディングを行った話
innovationjp
0
8.3k
アイデア枯渇から救った 1匹の猫の話
innovationjp
0
22
『問題解決』を読んでSkillにしてみた
innovationjp
0
310
社内でAIコンサルしたら "かなり良い成果"が出せた話
innovationjp
0
140
AWSのECSを分かりやすく 例えてみた
innovationjp
0
16
書店の入り口でわかる、いまの関心
innovationjp
0
30
日常生活における AI活用事例(俺)
innovationjp
0
640
AI時代の エンジニア生存戦略と 『余白会』
innovationjp
0
31
SDD (仕様書駆動開発)を やってみて
innovationjp
0
21
Other Decks in Technology
See All in Technology
Android skills に学ぶ
kokiko
0
140
トークンマネジメントでAIにとって働きやすい環境を実現する
hikaruegashira
0
130
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
360
【GCC2026】TrueHDRIを用いたルックデブ環境とライティングテクニック
bandainamcostudios
PRO
0
150
国家プロジェクトを支える「さくらONE」 大規模LLM開発におけるGPU障害を乗り越えるクラスター運用戦略
gpuunite_official
0
190
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.6k
:syncing_time:
sksat
2
220
2027年のMetricKit
kantacky
0
140
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
1
830
Featured
See All Featured
Building Adaptive Systems
keathley
44
3.2k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
930
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
The browser strikes back
jonoalderson
0
1.5k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
270
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
180
Mind Mapping
helmedeiros
PRO
1
330
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
IT øüóù~õýóø¸óù Next.js û¯~w~Ó~º j__´þùü·÷ó ÿWÍ y j__´þùü·÷óÿÿw u
~è 2 /~¯?}Ï WÍ y j__´þùü·÷ó / ÷ýð¿ø÷³ùýó÷ñóøöûóø / SaaS ÷³ùýó÷ñóøB
ñüð / úüðü }: õS/~o ¯w: Û×1»üù²üð ÿw u j__´þùü·÷ó / ÷ýð¿ø÷³ùýó÷ñóøöûóø / ñ÷ ³²÷³ùýó÷ñóøA2 ñüð / úüðü }: õS/ÿ~o ¯w: ßw»f
ÎÞ~²¸·óð _µüó¹{ttv û¯Ìo Next.js øÛvu û¯÷ý»¹<rÿ ö¯wvt»ºÜ Îß~]
_µüó¹~Îí 15 ~ïN{oº1IT øüóùwBtoB ~IT ýÕþü±ö³ó°÷ü¿~þ¶ÿ¶²Ä }~ß1öz»BtoB »üû¹þü±ö³ó°~ºÜ²ë~y»yIT ½úõü·÷ó Ïm²]wv}~w2
Ïmã/÷mû÷~UN²ß}Ww}»_~ß}²{wv1ÿ¯m}{ ²²ûwvw~y2
IT øüóùx _|Û÷y»IT øüóù1Om~IT ýÕ'µüó¹^/² o÷y»ÿÕg/~}÷ùóøõ¹üðwy2 ÎßzýÕåy 260 ~ÞïP~»ö´úü12,000 ïP~ýÕåy²
ó qýÏýËn ^/}{ßzåyßÖ²ÿó¹øó÷wßÿ ^¯ÿ{¸»þϵüó¹ IT W'DX ë²~ºÜ{ÿwvgùzýÕ²O ùw }Ï
Next.js x~û¯Ìoÿz|ßs~{ òÀózâÛwõýóø¸óù²wõw1s¼¹~ºÜ²/{ë~y»ß|rº~w âÛö¬õ Angular 1Backbone 1jQuery zy~ ÷tâÛ¹¿ó¿|~þ²OOu {vt~w
~û÷~_Ü ÷tâÛ²[1öü¶üûüº{ß x»~|ö÷{zsvt~w µ´øÕî~OO ñõ¹üþó¹1UIUX zyy_öz Õî|êWwvt~w ão~ö÷u ÷tâÛ¹¿ó¿|ão^|w~ß? ²OOu{vt~w
Next.js ^/_~õýóø¸óùër Next.js ²^/y»ï_~IT øüóù~öü¶ü¯1ïO~âÛ¹¿ó¿wëûu¼vt~w2 Laravel ~Blade µüðüµ´ùöó÷üüø¸ó¸óxwvowvt~w |1õýóø¸óù~÷ßg{vÖ|rº~w2 JavaScript
³üù~ßÛg´Ý{og{ºÜ|rº~w2 jQuery DOM í_²o?~²÷ýüñww|1Ý{o|÷w1³üù ~ÿ¯g{²ÿ|ûvt~w Backbone.js ¹þüøõ¹ó~»üøýzy/øw¿¼vt~w|1} sq÷v|þwvzº1}ï{f|{{svt~w2
Next.js ^/ß~õýóø¸óùër ( öü¶ü¯) 80% Next.js û¯ßÎ Pages Router ²owërwÛoo
20% ü¼·üôÛ ÿöû¯{¸ºë[wvt»ç·¹öðÿ~ÕßÎÎÛ Next.js (Pages Router) ñ´óõüüðÿü¿xwvãow1 SSR/SSG/CSR {¸»gùW²ßÿ App Router ^/f{(2024 ~3 o) Oúßg|r s Storybook + Vitest ³óýüýóø~~û÷Wx÷¶´ó·¹öð ~}/W1õýóø¸óùö¹ø²ë²2Îß÷ ¶´úüxStorybook ²³~wvt}t OpenAPI RESTful API ~ßù²{þWy»sxw1õýóø ¸óùxðó¿¸óù~³~|¸º¹ðüº{z º1~û÷|UNw~w2
z|Next.js ²ø³p~{ üóðúó°?ý~[ùg SSR 1SSG 1CSR 1ISR zy1úü¸~{g{ßxgùzüóðúó°?ý²øþw}»÷ßg|1ù5z³óö óôþ{ÿßÿýww2 ão^|w~{Og
Next.js 'React ^|w~/|¿1õwt~ ~sß´ç[óðü~¹½û²ó÷|¹üº{²°xví w~w2 Ußw¸³·¹ö Îßzù´öùú1~z³ÿõûö³1}wvVercel {¸»?zµýüø1~~û÷gxÛÛg²/}U Nu{»xúïw~w2
z|Next.js ²ø³p~{ üóðúó°?ý~[ùg SSR 1SSG 1CSR 1ISR zy1úü¸~{g{ßxgùzüóðúó°?ý²øþw}»÷ßg|1ù5z³óö óôþ{ÿßÿýww2 ão^|w~{Og
Next.js 'React ^|w~/|¿1õwt~ ~sß´ç[óðü~¹½û²ó÷|¹üº{²°xví w~w2 Ußw¸³·¹ö Îßzù´öùú1~z³ÿõûö³1}wvVercel {¸»?zµýüø1~~û÷gxÛÛg²/}U Nu{»xúïw~w2
Next.js ~üóðúó°?ý~[ùg ²÷úÁü·÷ó~þ{ßxvgùzüóÀúóÀ²øþw}~wÿÿß{yv~?ý²otvt~y SSR (Server-Side Rendering) ú²û¿´ð~÷ü¿è´SEO ÿ |ßzúü¸{gù( {x³y~
úü¸SSR) 2 SSG (Static Site Generation) ³óöóô|»{öõu¼ztß özúü¸{( Yö»þztßö) CSR (Client-Side Rendering) ´ó¿ù¿ö³özí_( »üøý ´úü¸Õ~}ý) (App Router x1PPR(Partial Pre-Rendering) ´ Streaming SSR zy²x»~w1û¯w¹svt}twy2 )
z|Next.js ²ø³p~{ üóðúó°?ý~[ùg SSR 1SSG 1CSR 1ISR zy1úü¸~{g{ßxgùzüóðúó°?ý²øþw}»÷ßg|1ù5z³óö óôþ{ÿßÿýww2 ão^|w~{Og
Next.js 'React ^|w~/|¿1õwt~ ~sß´ç[ñóðü~¹½û²ó÷|¹ðüº{²°xví w~w2 Ußw¸³·¹ö Îßzù´öùú1~z³ÿõûö³1}wvVercel {¸»?zµýüø1~~û÷gxÛÛg²/}U Nu{»xúïw~w2
ão^|w~{Og < State of JS 2024(https://2024.stateofjs.com/ja-JP/libraries/meta- frameworks/) 0% 30% 60%
90% React ( õýóø¸óùõüüðÿü¿ø¯) Next.js ( ñ¿õüüðÿü¿ø¯) React õýóø¸óùõüüðÿü¿ø¯w}80% ~o÷²º12 OïO²/}_}öwv1 Owy2Next.js ñ¿õü üðÿü¿ø¯w}66% ~o÷²³w1s~»ö´úw1 O²sßwvt~y2 }Þ: ß{ão{²tz|svt~yÿ
Next.js x~û¯¿´ðù´ó Next.js x~û¯1oÝz}xÿöz÷ý»¹²}vo|Ww~w2 2023 ~4 o Next.js x~û¯}²Û 2024
~6 o ÷ý¸·¿øxwvo|ö{Û× 2025 ~2 o úü¸~Next.js x~û¯|ßÎ 2025 ~9 o ÿ2ýÿöz}Õx~]x
÷ý¸·¿øqNr<~~w{{¯ssx úúü¹fu~} __óóÀðóúúü¹²óÛwvt~w|1ú¹¿²owvVrúúü¹²øþ2µüó¹\of²g/W y»fu²v~w âÛø¯ï_~·ÏTbx~ ~ñüð~öûóøÿ²ÿ}¿1Ïmø´þüÁö³óÀø¯ÿSEO ñõ¹üþó¹|ºwWmy»{²û¯~ oÿ²®nw1âÛø¯ï_~W?²ß»_v²ëûw~w2 sswÝs~1âÛöñúóøqwz1ó¸ý¹özñúóø²nú{ysxww2 ÿßo~qºÜwr»<ñõ¹üþó¹~UN=²{{¿w÷|rº~y{
SRE x³~w1´óõù¯~¿öw õýóø¸óùxðó¿¸óù²wúý¸øúwûvy»±1´óõùt~¯~¿öw²SRE ñüð{²þÏwv fu²v~wÿSRE ñüð~o5{o_{wy
PJ Wß~ß~û¯÷ý»¹ 1 ÿíúü¸~tûw þüÁö³óÀñüðxW?wvû¯ÿíúü¸~{YOÞq²ßý2¸º³óðü¸÷ó|r»úü¸|{Y 2 ¹Á¸õüûûw úü¸ïwtt~w{¿¹{»{~¿²º²vv1Ïmøx~fqoÿNext.js ~}|z{s±1ss|ów{sw y
3 õýóø'ðó¿¸óùÿ¯Û ç[~Nginx ôÛ²ow1Next.js úü¸xLaravel úü¸²ùW{oºVq»ûüö³ó°¯²ßÍ 4 ß{úü¸²ç_ tx{oºVqvßÍ ~y»úü¸~÷ü¿²Open API wßWwv1Laravel wAPI ßÍ1Next.JS wõýóø_r~m¼ 5 üóõüßÎß1stg ôÛwö¹øwvoúúü¹ ÷÷ý´{Next.JS ~Swr»Vercel ²ão
æöwý´óø 1 ú÷ü´¹ÿ¿¹¿~/u¿²º~÷wu ðó¿¸óù~×z¿¸ú÷v²úõ±¿¿wz|¹API _rwº1Next.js ³üù~{ëzý{c¼»~f²w1¹ Á¸õüûûww_rw__~¸ºÕþ|~ow~w2 ýþÏmø´Nÿ¹xþÏwrsv²±vt÷ 2 Áüð~ÿ³¹ø
{òÀóõýóø¸óù~|_±v~ñóðüw¯s±1âÛÿß{ÎóïN{f|{{º~w2 ±{/ÞÁüðÕw÷¿qo~|zy²¯qºwz|¹²±~w2 3 Next.js þo~ý~sto ÏxLink ¿À´Image ¿Àzy1/¿~û÷´ñõ¹üþó¹²Nrv¼»ý{¸sv1{qÝzú¿¸¹ø²ß´wv w~sº1Vercel ~Y}÷ùó~NÖ{rÔw}v{zs~w1st|÷wtxx~w2ûw_zenn w²wv »~wo¯¿vOut2
û¯wßÝz÷¿ API ú¿¸¹øu~ßò{v¬÷ö¹ø~Ýg API ú¿¸¹ø{w¿´ÿóÀwú¿¸¹øu_wz|¹ßx»~w1¬÷ö¹ø~Ýg²Ûw~w2 2 ÿüóÀúóÀxSEO ~·ÏÿSSR+CSR _HTML
}xCSR wß{¹¯¿}~{ww1Ýz}_è{»y}xs~w2 ÷÷ý´ôÛ~øÛÿ_f g_AWS Amplify ²voUwxv~w|1UserAgent ~×ß{_Ü|rº1Vercel x~û¯²ßýw~w
û¯wßÝz÷¿ API ú¿¸¹øu~ßò{v¬÷ö¹ø~Ýg API ú¿¸¹ø{w¿´ÿóÀwú¿¸¹øu_wz|¹ßx»~w1¬÷ö¹ø~Ýg²Ûw~w2 2 ÿüóÀúóÀxSEO ~·ÏÿSSR+CSR _HTML
}xCSR wß{¹¯¿}~{ww1Ýz}_è{»y}xs~w2 ÷÷ý´ôÛ~øÛÿ_f g_AWS Amplify ²voUwxv~w|1UserAgent ~×ß{_Ü|rº1Vercel x~û¯²ßýw~w
÷÷ý´ôÛ~øÛÿAmplify {¹Vercel x _}ÿAWS Amplify ç[~AWS ´óõùx~«Üg²rº1__AWS Amplify ²÷÷ý´ôÛ~YÜxwv}wvt~w2 ºÜ~oÿUserAgent
~×ß_Ü w{w1UserAgent åy~×ß{_Ü|r»sx|vnw1¿ÿw}ÿAmplify þo~Ow\wrssx|vn w~w2 g~ÛÿVercel x~û¯ Next.js ~~Swr»Vercel 1s~UserAgent ~_ܲë~w}»sx|úu¼1yv~üóðúó°?ý{ÿ ßwvt~w2³¹ø~¿u÷ùww|1z³x{Îÿ|ߺ~w1}~~~Vercel ²ãow~w øÛ~1üóðúó°?ýx~«Ügx³¹øñõ¹üþó¹zy²owv1¯VÔ{rsôüû²øs~w·v
û¯~rÿÿ_|Y¿s~{
ñõ¹üþó¹~/_UN Next.js x~û¯{¸º1úü¸èþ|/_{UN w~w2{{_è~¿WÝ×w1öü¶ü ¸ºÿù{³óöóô{²¿»¹w}»¸v{zº ~w2 Core Web Vitals ~¹³²²/_{}Õw1µ´ø~u
yg|UNw~w2 ûwtrÿzenn {²wvrº~y2 Zenn /kü¼·ü²÷ú²Next.& om~ow1Next.JS ²otv ~1xtv{ç[~ü¼·üz_&
ão?~W Next.js x~û¯{¸º1_~âÛ¹¿ó¿òÀóWu¼~w2 s¼{¸º1òðózâÛ{·?²ct¸ó¸û²{¹~ßß|ßòw1_/{kõxwv~ão²y»sx|w}~w 2âÛx~÷Ï|1/wsß{ö}y»sx²ßwvt~y2 ß{}¼w/wõ~´ó¿óõü|_~note Ï{²r»~w1¸q¼|rvutÿ note ÿþüø î÷wv{¹3
öo}sù~´þùü·÷ów~zßÏÿj__´þù& x±~wvÿ 3 o{´þùü·÷ó{/w²üð/}}¼»¸ó¸û²~ Chisato wy }½}½3 öo|}xvxwvt»~w1ù~s¼~wx´þùü&
ÿö¯wvt»ºÜ Atomic Design ~¿öwxgùW ç[~Atomic Design |×Ww1Storybook |rsv²ûv|÷wz svt»~w1·ó÷ûwûvw´yt³óýüýóø¯{w}zt{ xxvt~y2
ÿ÷¿|¿ºzt~w1r»oo¯zûw~w·v App Router x~û¯ öz»ñõ¹üþó¹UNx1^gözPages Router µýüøÎ~ÿ ýg²owv1û¯u{tzxxvt~yÿxtx1xv²ö? ~t»_mxzº}vwy ~ü¼·üzûv¯~wõ ûv¯~/øAngular 1.2 zy~÷tâÛx1Fat Controller |î¼v t»~w~x±vwõwtxxvt~y2
Îß~]ÿkz»âÛ¿õx Next.js ~ýÿö}Õ Atomic Design ~}Õ²wßo Ûözðü¸÷ó²ó÷ Lint xPrettier ²Biome
{Yöy»zy1õâÛ~}ö^/ ñó±ü¸ûv~gùW ðó¿¸óùwõ÷ý¸·¿ø Next.js ÿTypeScript x~þg²ow1Laravel {¹Go x~û¯~oÿY³xvbatch q´sv~y|1÷vþ|{zºzº~w ÎAI ²1¸ºßoö{zsvt»~wõûowz|¹¹ôüùcsv²±¹¼vt~y2 ÿClaude Code xCodex CLI sv~y ~1õýóø¸óùwõ~rß_|k~÷ý¸·¿ø{²}ÿ²Nxvt~y âÛøÛ´ßÍqwz1ñüðy_wït²oûy÷ý»¹²/W{wvt~y2w²c¼o|rzûww~w·vÿ
note xZenn ²´sv~y~w1 õ¹ýüzØtw~yÿ Zenn j__´þùü·÷ó Tech Blog m}g/~ý/UqIT ýÕµüó¹<IT
øüóù=~Û÷_1´þùü·÷ ó~ñüð~}_Tech Blog wyÿ TÏ~Õû[/~o¿wrº1Om²ï& note ÿþüø j__´þùü·÷ó ¸ó¸û²ñüðÿnote j__´þùü·÷ó~¸ó¸û²ñüð{¸»1¸ó¸û²öý°note wyÿ }~~oW´ñüðñóðü1´ùóøtxzy{ttv~åy²~ïwvt~yÿ