Cloudflareは、Viteのフルスタックアプリケーションを構築してCloudflareにデプロイするための、デプロイプラットフォーム、SDK、コマンドラインインターフェースを組み合わせたオープンソースプロジェクトとしてVoidを公開した。この3つのツールは、各コンポーネントを個別に管理する代わりに、アプリケーションのインターフェースをサーバーサービス、データベース、Cloudflareのリソースに接続する統一されたワークフローを提供する。
今回の動きは、VoidZeroがCloudflareに加わった後に行われた。当初はアプリケーションをデプロイするための独自プラットフォームだったが、企業や他のチームがインストールしてカスタマイズできるよう、チームはソースコードを公開する方向に転じた。
1つのパッケージに含まれる3つのコンポーネント
Voidは、Workers for Platforms上で動作するチーム向けの共有ホスティングプラットフォームであるVoid Platform、Viteアプリケーションをフルスタックアプリケーションに変換する構成可能なJavaScriptパッケージであるVoid SDK、リソースの準備とアプリケーションのデプロイを行うコマンドラインツールであるVoid CLIで構成される。
3つのコンポーネントは、JavaScriptパッケージとVite向けプラグインとしてnpmからインストールできる。プラットフォームでは、管理者がアクセスを制御し、リソース制限を設定し、デプロイと利用状況を確認できるほか、管理インターフェースまたはCLIを通じてユーザー、プロジェクト、ログ、ロールバックを管理できる。
自動的に準備されるインフラストラクチャ
SDKは、デプロイ中にアプリケーションが必要とするリソースを推測する。Cloudflareによると、アプリケーションはデータベース、キュー、AIとの連携を要求でき、Voidが適切なリソースを自動的に準備する。また、ファイルベースのAPIルート、事前レンダリング、キャッシュ、islands機能、データベースからユーザーインターフェースまで広がる型安全性も提供する。
このパッケージはReactやVueなどのJavaScriptフレームワークをサポートし、Vinext、React Router、SvelteKit、Nuxt、TanStack Start、Astroと統合できる。VoidはHonoを使用したリソースインターフェース、マイグレーション、デプロイ、Better Authによる認証を管理する。
開発環境では、void/dbをインポートするとローカルデータベースが提供され、デプロイ時にはD1リソースを自動的に生成できる。同じ方式がAI Gatewayにも適用され、void/aiをインポートすると、CloudflareのAIサービスを利用するために必要な統合が設定される。
実際に何が変わるのか
Voidは、Viteアプリケーションの作成から本番環境での稼働までの距離を短縮する。アプリケーションをビルドし、マイグレーションを適用し、リソースを準備したうえで、Cloudflareまたは共有Voidプラットフォームにデプロイする。CLIを直接使用できるほか、コーディングエージェントを通じて、デプロイログの分析、失敗したリクエストの診断、プロジェクトのライフサイクルの追跡を行える。
このプラットフォームは、技術者ではないチームや、コーディングエージェントを利用する従業員が、各ユーザーにクラウドアカウントへの直接アクセスを与えることなく社内アプリケーションを作成できるようにしたい企業も対象としている。共有プラットフォームはリソース制限と一元的なアクセス制御を提供するが、自社でホストするには、Workers for PlatformsとR2を有効にしたCloudflareアカウント、PostgreSQLデータベース、ログインプロバイダー、アプリケーション用のドメインが必要になる。
オープン化しても制約はなくならない
企業はVoidをそのまま利用できるほか、システムやワークフローを統合するためにコピーして変更したり、他のデプロイプラットフォーム向けに適応させたりできる。チーム管理機能を必要としないユーザーは、SDKを通じて自分のCloudflareアカウントにアプリケーションを直接デプロイすることもできる。
実際のメリットは、チームがCloudflareのモデルを受け入れるかどうか、またプラットフォームの基本要件を自ら管理できるかどうかに左右される。さらに、今回の発表では設定と自動プロビジョニングの機能が説明されているものの、性能上限、料金モデル、アプリケーション間のセキュリティ分離の仕組みについて、記事内に独立した詳細は示されていない。これらは、広範な本番環境でVoidを採用する前に確認が必要な点である。