VoidZero's tools such as Vite, Vitest, Oxc, and Rolldown — bundled in one toolchain as Vite+ — have made frontend development faster, but building full-stack applications requires more than just a tooling stack. These applications need server routes, databases, local development environments, and a fast and easy way to deploy ideas to production. We’re excited to open-source three new products that bring server routing, typed data access, and Cloudflare deployment into a unified Vite workflow.
Void Platform: A shared deployment platform for teams to host Void apps on Cloudflare. Void SDK: A composable JavaScript SDK for building full-stack apps with Vite. Void CLI: A CLI for provisioning resources and deploying Vite apps to Cloudflare.
The CLI deploys apps built with the SDK to the Platform. All three products are open-sourced as a single JavaScript package and Vite plugin that you can install via npm install void . With Void , you can build your server and client together, carry types from your database to the UI, and let Void automatically provision the Cloudflare resources that your app uses.
We originally set out to build a single, private platform for all users to deploy apps to. After VoidZero joined Cloudflare , we adjusted our direction to open-source the platform and allow anyone to install because we saw a growing need: companies want to encourage vibe-coded internal apps, but are concerned about security and do not want to give cloud access to every employee .
Void addresses this problem. Void Platform: a cloud platform for your company The Void Platform is fully open source and you can fork it and adapt it to your needs by integrating your company's systems, customize deployment workflows, build features for your customers, or make it work on other deployment platforms. Use the platform as it is, contribute improvements upstream, or fork it and build only the features you need.
The open source code can be used out of the box or as a starting point. As an admin of a Void Platform, you control access, set resource limits, inspect deployments and usage through the Void CLI or admin dashboard, and provide guardrails so everyone else can ship serious and vibe coded apps to the same shared platform. By installing a Void Platform, your team or customers have a shared deployment environment in your Cloudflare account on top of Workers for Platforms .
Void Platform enables: Faster prototyping . Your team can quickly build prototypes, deploy them, and share working apps for feedback, without setting up a separate Cloudflare account or provisioning resources for every project. This reduces the time to ship internal apps from days/weeks to minutes.
Non-technical teams building . This workflow also lets teammates who do not normally write code work with coding agents to build and share their own apps. A designer can create an interactive prototype, or an operations teammate can build an internal dashboard, then deploy it to the same platform.
All with the right security measures in place. To self-host a Void platform, you need: A Cloudflare account with Workers for Platforms and R2 enabled A PostgreSQL database An account with your chosen login provider A domain for your apps Then install Void as a cloud platform by running a single command: Once your platform is set up, approved users can connect to it via the Void CLI for deployment.
void connect https://api. orange-company. dev A user builds their app using the Void SDK, which is what powers Void Platform benefits like authentication, framework detection, resource provisioning, and more.
In other words, Void Platform only works because of the accompanying SDK and CLI. Void SDK: zero-config infrastructure Void turns a Vite app into a full-stack Cloudflare Workers app. You or your agents can write code and Void will automatically infer resource bindings and provision resources such as databases, queues, or AI bindings during deployment.
To get started, add Void as a Vite plugin: import { defineConfig } from "vite"; import { voidPlugin } from "void"; import { voidReact } from "@void/react/plugin"; export default defineConfig({ plugins: [voidPlugin(), voidReact()], }); The Void SDK ships with adapters for popular JavaScript UI frameworks such as React and Vue, provides file-based API routing, pre-rendering, caching, islands, and end-to-end type safety from the database to your UI.
All of Void’s features are optional and composable. Void integrates with existing application frameworks such as Vinext, React Router, SvelteKit, Nuxt, TanStack Start, and Astro. You can use those frameworks for routing and rendering, while Void handles resource APIs using Hono, migrations, deployment, and authentication with Better Auth.
Let's take a look at building a server-rendered page, with types inferred from the database query through to the client: // pages/blog. server. ts import { defineHandler, type InferProps } from 'void'; import { db } from 'void/db'; import { posts } from '@schema'; export const loader = defineHandler(async () => ({ posts: await db.
select(). from(posts), })); export type Props = InferProps; // pages/blog. tsx export default function Blog({ posts }: Props) { return (
- {posts.
map((post) => <li key={post. id}>{post. title})}
This also works for using AI through Cloudflare’s AI Gateway: just by importing void/ai , everything is set up automatically for you. // routes/api/decide. ts import { defineHandler } from 'void'; import { ai } from 'void/ai'; export const POST = defineHandler(async (c) => { const { question } = await c.
req. json(); const result = await ai. run('@cf/cloudflare/clef', { model: 'clef', state: {}, questions: { decision: { type: 'noul', instructions: question }, }, }); const probability = result.
answers. decision. noul; return c.
Originally published at blog.cloudflare.com


