概要
Cloudflareは9月28日、Next.jsアプリケーションをViteビルドシステム上で実行できるフレームワーク「Vinext」を1.0として正式公開した。Vinextを使うことで、既存のNext.jsプロジェクトをCloudflare WorkersをはじめNetlify、AWS Lambdaなど、Vercel以外の任意のプラットフォームにデプロイできるようになる。Next.jsは特定のホスティング環境を前提とした設計になっている部分があり、Vercel以外へのデプロイには制約が伴うことが知られていたが、Vinextはビルドの土台をViteに置き換えることでこの課題に取り組んでいる。
開発の経緯とAI駆動開発
Vinextの出発点は「2月に始まった、1人のエンジニアと大量のトークンでNext.jsフレームワークを再現する1週間のAI駆動実験」だったという。当初は小規模な検証プロジェクトだったものが、7ヶ月の開発を経て、本番環境の高トラフィックアプリケーションにも対応できるプロダクト級のフレームワークへと成長した。Cloudflareはこの取り組みを「オープンソース向けのソフトウェアファクトリを構築している」と位置づけており、自動化エージェントが毎朝Next.js本体の変更を確認し、差分を追跡する課題を自動的に起票する仕組みも整えている。
対応機能と互換性
Vinext 1.0は、App RouterとPages Routerの両方、およびそのハイブリッド構成に対応する。レンダリング方式ではサーバーサイドレンダリング、ビルド時プリレンダリング、静的エクスポート、ISR(Incremental Static Regeneration)をサポートし、React Server Components、Server Actions、APIルート、ミドルウェアといった開発者向け機能もカバーしている。キャッシングに関してはCloudflare Workers Cacheとの統合を備え、OpenTelemetryやSentryによる可観測性にも対応する。Cloudflareは独自の互換性テストスイートを毎晩再生成しており、「最重要な顧客要望機能について99%を超える」テスト適合性を達成したとしている。一方で、Next.js 16が重視する新しいキャッシュコンポーネント(“use cache"ディレクティブ)への対応は限定的で、この点については「多くのチームはまだ使用していない」機能だとして優先度を下げている。
キャッシュウォーミングという独自の工夫
Vinextの特徴的な仕組みの一つが、ページのプリレンダリングをビルド時からデプロイ前のCloudflareネットワーク側に移す「キャッシュウォーミング」だ。デプロイの際には新しいWorkerバージョンを本番トラフィック0%の状態でアップロードし、高トラフィックページのキャッシュを事前に埋めたうえで完全にデプロイを完了させる。この方式によってビルド時間を大幅に短縮しつつ、デプロイ直後のコールドキャッシュによるレスポンス低下を避けられるという。導入は新規プロジェクトならnpm create vinext-app@latest、既存のNext.jsプロジェクトならnpx vinext check && npx vinext initで開始できる。
今後の展望
CloudflareはVinextを単発のツールではなく継続的に更新される基盤として運用する方針を示している。自動化エージェントによる日次の互換性チェックと課題起票の仕組みにより、Next.js本体の進化に追随し続ける体制を構築している点は、特定バージョンへの追従が課題となりがちなサードパーティのランタイム実装としては珍しいアプローチだ。Vercelロックインを避けたい開発者にとって、既存のNext.jsコードベースを大きく変更せずにマルチクラウド対応できる選択肢が増えたことになる。