Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CloudflareでNext.js 2025年夏
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ryu
August 26, 2025
Programming
23
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CloudflareでNext.js 2025年夏
Cloudflare Workers Tech Talks in Niigata #1
で発表した資料です。
Ryu
August 26, 2025
More Decks by Ryu
See All by Ryu
自作JavaScriptランタイムを作るための5分レシピ
ryuapp
0
29
Other Decks in Programming
See All in Programming
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
Agents on Rails - Rails at Scale 2026
irinanazarova
0
560
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
480
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
Railsバージョンを4倍にした話
optim
0
390
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
920
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
270
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
Jetpack Compose Mechanisms
skydoves
3
820
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Building Adaptive Systems
keathley
44
3.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Mobile First: as difficult as doing things right
swwweet
225
10k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Building an army of robots
kneath
307
47k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
4 Signs Your Business is Dying
shpigford
187
23k
Transcript
CloudflareでNext.js 2025年夏 Cloudflare Workers Tech Talks in Niigata #1
自己紹介 Ryu(@ryuapp) ソフトウェアエンジニア at 株式会社モニクル • GitHub: @ryuapp • Website:
https://ryu.app
話すこと CloudflareでNext.jsを動かす方法について知ろう • Next.jsとは(軽く) • CloudflareスタックでのNext.jsの動かし方4選 Next.js on Cloudflareを触っている感想を交えつつお話しします ※デモは含みません
Next.jsとは • Vercelが開発しているReactのメタフレームワーク • フロントエンドとバックエンドを両方開発できる フルスタックなフレームワーク • ゼロコンフィグで簡単にセットアップできるのが魅力 • Webフレームワークの中で人気No.1
(GitHubにあるフレームワークの中で1番スターを持ってる)
State of JavaScript 2024: Meta Frameworks https://2024.stateofjs.com/en-US/libraries/meta-frameworks/
多くの開発者は Next.jsを使いたい ↓ CloudflareでもNext.jsを使いたい
CloudflareでNext.jsを動かす4選
1. OpenNext
OpenNextとは • Next.jsを異なるプラットフォーム(Vercel以外)で 動かすためのアダプター(デプロイツール) • 現状一番推奨されているやり方 • AWS、Cloudflare、Netlifyアダプターが存在 • SSTと各ベンダーのエンジニアがアダプター開発している(AWS以外)
https://opennext.js.org/
OpenNextの良いところ • Cloudflare WorkersでNext.jsを動かせる! ◦ Vercelの場合、商用利用は 20ドル~ ◦ Workersならバンドルサイズの制限で有料プランに入っても 5ドル~
◦ 個人開発したい人は財布にやさしいのでおすすめ • Next.jsのキャッシュ管理をクラウドに載せられる ◦ CloudflareのD1、KV、R2、Durable Objectsを使用している ◦ Next.jsを複数インスタンスでセルフホストする場合、 自前で設定が必要になるが、その設定が必要なくなる
OpenNextの課題感 • 最新機能、バージョンへの追従にラグ ◦ Vercel以外のベンダーが開発しているので仕方がない • 開発モードとビルド後の差分がある ◦ OpenNextはビルド後の生成物にパッチを当てている ◦
実体験、Wranglerをアップデートしたら壊れてしまった (OpenNextがv0) ◦ CIにe2eテストとかはあった方がいいかも • エコシステムがついてこない ◦ Next.jsの機能に依存しているライブラリが一部動かない (とはいえ、まあほぼ動く ) ◦ @sentry/nextjsとか
2. @cloudflare/next-on-pages
@cloudflare/next-on-pagesとは • Cloudflare PagesでNext.jsを構築するためのCLI • OpenNextが作られる前はこれを使っているケースが多かった • 現在はOpenNextの使用が推奨されるので、 新規採用するメリットはない https://github.com/cloudflare/next-on-pages
余談: @cloudflare/next-on-pagesはなぜPages? 最初からWorkersで良かったのでは? • Cloudflare WorkersのStatic Assetsが当時なかった ◦ next-on-pagesは2023年9月頃登場?【要出典】 ◦
Static Assetsは2024年9月登場(Builder Day 2024) ◦ Workersでバンドルすると、 フロントエンド側だけでバンドルサイズが上限に到達してしまう ◦ 当時は無料枠だと上限が 1MB(2024年10月に3MBに引き上げ)
3. Static Exports
Static Exportsとは • Next.jsを静的サイトとしてビルドする手段 • WorkersのStatic Assetsを使ってデプロイできる • SSG/SPA用に丁度いいやり方 https://nextjs.org/docs/app/guides/static-exports
Static Exportsの良いところ • フロントエンドだけになるので、どこでも動かせる ◦ バックエンドはWorkersでHonoでもなんでも良しなに
Static Exportsの課題感 • フルスタックにNext.jsを使えなくなる ◦ SSRできない • Next.jsの機能が一部しか使えない ◦ ServerActions、Middlewareなどが使えない
◦ https://nextjs.org/docs/pages/guides/static-exports#supported-features-1 OpenNextを使う必要がない人向け
4. Cloudflare Containers
Cloudflare Containersとは • Cloudflareが提供するコンテナ基盤(オープンベータ) • 類似サービスはGoogle CloudのCloud Runなど • Workersで動かすことができなかったアプリも動かせるようになった
紹介ブログ https://blog.cloudflare.com/cloudflare-containers-coming-2025/ ドキュメント https://developers.cloudflare.com/containers/
Cloudflare Containersの課題感 • Workersに課金が必要(月5ドル) ◦ 検証のため気軽に試したい • レスポンス速度が遅い ◦ フロントエンド用のサーバーには現状厳しい
• コールドスタートが長い(Next.jsの問題) Next.jsをtoC向けにデプロイしたいなら向いていない Workersで動かないアプリを動かすための エスケープハッチとして使うのが良さそう
Next.js on Cloudflare 総評 • OpenNextを使って Workersにデプロイするのが最善 • 静的サイトなら Static
Exportsするだけでいいね • 将来的にはCloudflare Containersによる運用も視野に入るかも • 新規開発なら@cloudflare/next-on-pagesではなくOpenNextを使おう
補足:今後の OpenNext • Deployment Adapters APIへの対応 https://github.com/vercel/next.js/discussions/77740 3月頃にNext.jsで発生した脆弱性への対応の批判を受けて提案されたAPI v16にアルファリリースされる予定 Postmortem
on Next.js Middleware bypass https://vercel.com/blog/postmortem-on-next-js-middleware-bypass
まとめ • CloudflareスタックでNext.jsを動かす方法を紹介 ◦ OpenNext ◦ @cloudflare/next-on-pages ◦ Static Exports
◦ Cloudflare Containers • OpenNextを使ってNext.jsをWorkersにデプロイするのがおすすめ ◦ 静的なサイトならStatic ExportsしてWorkersのStatic Assetsに載せよう • OpenNextの仕組み
みんなもNext.js使っていこうぜ!
Thank you