Tech 9 min read

VoidZero announces Vite native deployment platform “Void”

IkesanContents

VoidZero, the developer of tools such as Vite, Rolldown, Vitest, and Oxc, has announced a web application deployment platform called “Void”. Early access applications began on March 16, 2026.

VoidZero’s movements in the past week

VoidZero has been making a series of big announcements in recent days. On March 13th, we adopted the Rust bundler Rolldown Vite 8.0, the next day we introduced Vite+, which integrates builds, tests, lint, and formatting, and now we have a deployment platform.

@@CODE0@@

In the webpack era, separate tools such as webpack, Jest, ESLint, Prettier, and Vercel were combined, but the idea is to integrate them with vp devvp buildvp testvoid deploy. We’re trying to do for the entire Vite ecosystem what Vercel is doing for Next.js.

How Void works

Void is built on top of Cloudflare’s suite of services.

ServiceRole
Cloudflare WorkersBackend Server (Edge Execution)
D1SQLite-based distributed database
R2Object storage
KVKey Value Store

Users do not need to be aware of these directly. You don’t even need a Cloudflare account, and Void takes care of post-deployment management. It scans the source code and automatically provisions the necessary resources (DB, KV, storage, etc.), and no configuration files are required. Just add the plugin to your Vite project and hit void deploy.

@@CODE1@@

For local development, you can use Miniflare (a local simulator compatible with Workers).

V8 Isolates limitations

Since the technical foundation is Cloudflare Workers, the execution environment is V8 Isolates. Unlike the full Node.js runtime, there are some limitations.

ConstraintsContents
CPU time limit50ms for free tier, upper limit for paid tier
Not compatible with CommonJSrequire() cannot be used (ESM only)
Node.js APIMany can be used with the nodejs_compat flag, but some such as fs and child_process cannot be used
File systemLocal files cannot be read or written

This restriction is not a problem if you use SSG (static site generation) to generate HTML in advance. The build is completed on Node.js, and the generated HTML is delivered to the CDN. If you use SSR to dynamically access the Node.js API, the migration hurdle will simply be higher.

Merging with vinext

vinext, which Cloudflare used AI to reimplement Next.js on Vite in one week, which we covered last month, can also be deployed to Cloudflare Workers with vinext deploy. Although vinext and Void are separate projects, the combination of “Vite + Cloudflare infrastructure” is the same.

graph LR
    A[Cloudflare] -->|vinext| B["Next.js APIを<br/>Vite上に再実装"]
    C[VoidZero] -->|Void| D["Viteネイティブの<br/>デプロイ基盤"]
    B --> E["Cloudflare Workers<br/>エッジ実行"]
    D --> E

vinext achieves 4.4 times faster production builds with Vite 8’s Rolldown integration. Void should also use the same Rolldown-based build pipeline. The combination of Cloudflare + Vite is being attacked from different directions: vinext from the Cloudflare side and Void from the Vite side.

What happens when these things merge? This is a world where everyone rides on Cloudflare’s edge, with Next.js users via vinext and users of other Vite-based frameworks (Astro, Nuxt, SvelteKit, etc.) via Void.

Can this blog (Astro + Vercel) be migrated to Void?

Here’s my own story. This blog was built using Astro 5 and deployed as a static site on Vercel. We investigated whether it is possible to migrate to Void or Cloudflare, and what will change if we migrate.

Current configuration

Identify parts that depend on Vercel from the actual astro.config.mjs and package.json.

Vercel specific dependency.

DependsUsage
@astrojs/vercelAstro adapter (configured with webAnalytics: { enabled: true })
@vercel/speed-insightsPerformance measurement
vercel.jsonRedirect settings (5 301 redirects from old URL to new URL)

**Platform independent dependency (no impact on migration). **

DependsUsage
astro-pagefindFull text search (index generated during build, distributed as static file)
@astrojs/partytownSeparate third-party scripts into Web Workers
rehype-katex / remark-mathFormula rendering
rehype-external-linksAdd target="_blank" to external links
Custom rehype pluginYouTube embed, lazy loading of video embed
sharpImage processing (only when building)
better-sqlite3For Lab tools (only when building)

output: 'static'’s completely static site, so there are no places that use Node.js API at runtime. The limitations of V8 Isolates are irrelevant.

Migration to Cloudflare Pages (if not using Void)

Astro officially provides an @astrojs/cloudflare adapter, but with output: 'static', you don’t even need an adapter. Static sites can be deployed directly to Cloudflare Pages.

The only specific change is the removal of the adapter.

import vercel from '@astrojs/vercel';

export default defineConfig({
  adapter: vercel({
    webAnalytics: { enabled: true },
  }),
  output: 'static',
  // ...
});
// adapter行を削除するだけ
export default defineConfig({
  output: 'static',
  // ...
});

Migration checklist.

ItemWork detailsDifficulty
AdapterDelete @astrojs/vercelJust delete one line
Web AnalyticsVercel Web Analytics → Cloudflare Web Analytics (JS snippet replacement)Easy
Speed InsightsDelete @vercel/speed-insights (No equivalent in Cloudflare)Delete only
RedirectConvert vercel.jsonpublic/_redirects fileRewrite 5 items
DNSVercel name server → Cloudflare DNSChange domain settings
Build settingsSelect framework “Astro” on the Cloudflare Pages dashboardAutomatic configuration

_redirectsConversion to a file looks like this:

/script/k-on-tape /lab/generator-kontape 301
/dojin /doujin 301
/dojin/* /doujin/:splat 301
/ksbiz/generator/kontape /lab/generator-kontape 301
/ksbiz/generator/kontape/ /lab/generator-kontape 301

Technically it’s pretty simple. Previously, when I was stuck deploying Vercel (/en/en/articles/vercel-deploy-failure-lessons), the unexpected cause was Git’s email settings, but migrating to Cloudflare Pages has fewer such pitfalls. This is because CDN distribution of static sites is a simple mechanism.

Transition to Void

Void supports Vite-based meta frameworks, but it is unclear whether Astro is explicitly supported at the early access stage. Astro uses Vite internally, so theoretically it would be eligible, but operation has not been confirmed.

Even if Astro is supported, for static sites, there is almost no benefit from Void’s selling point of “automatic provisioning” (DB, KV, authentication, etc.). Void is at its best in full-stack applications, and is overspecified for static sites.

What will change after migration?

Cost

ItemVercel (Hobby)Cloudflare Pages (Free)
Number of requestsUnlimited100,000 yen per day (equivalent to 3 million yen per month)
Bandwidth100GB/monthUnlimited
Egress feeCharges for over 100GBNone
Build6,000 minutes/month500 times/month

On the other hand, Cloudflare has unlimited bandwidth so there will be no impact. On the other hand, Cloudflare has a limit of 500 builds per month, so if you deploy multiple times a day, you may reach the upper limit (in the case of this blog, it’s about 50 builds per month, so it’s not a problem).

Performance

Both are fast enough as they are CDN distribution for static sites. Cloudflare has over 330 edge locations, and Vercel also has edges in major regions. If access is mainly within Japan, there is almost no difference.

However, as this blog states on CLAUDE.md, image bandwidth is a future issue, and “switching to Cloudflare CDN” is cited as an escalation path. By migrating to Cloudflare Pages, your CDN becomes Cloudflare itself, making image delivery optimization seamless. If you stick with Vercel, you will need to install a separate Cloudflare CDN in front of it, but with Cloudflare Pages, that is not necessary.

DX

Vercel comes standard with automatic deployment using git push, preview deployment, and Web Analytics, and can be used without any configuration. Cloudflare Pages has similar functionality, but it lacks the sophistication of Vercel. Vercel Web Analytics in particular is lightweight and easy to use.

I have previously built a real-time analytics infrastructure with Cloudflare Workers, so I am familiar with Cloudflare’s management screen. However, Vercel’s dashboard is overwhelmingly simpler.

No reason to migrate now

In the case of this blog, I have no problems with Vercel. The migration itself is easy, but the only benefits you get are costs (less bandwidth restrictions) and optimization of future image distribution, so it’s not worth the migration cost.

Migration is worth considering in the following cases:

  • If traffic exceeds Vercel’s bandwidth of 100GB/month
  • If image bandwidth becomes a problem and you need to migrate to Cloudflare CDN (Pages will solve the problem)
  • If you want to switch to SSR and take advantage of Cloudflare Workers’ edge execution
  • If you come across a function that requires use of Cloudflare-specific services such as D1 or KV

Void still in early access

It is still unclear whether it will be suitable for production use as it is in early access. The pricing structure has also not been disclosed. Since it is based on Cloudflare Workers (starting from $5 per worker per month), it will be difficult to make it completely free, but we will have to wait for future information to find out how much of a free tier VoidZero will offer.

VoidZero has raised a total of 17.1M(17.1M (4.6M Seed + $12.5M Series A) from a16z and others, and one of its goals is to make the entire Vite ecosystem commercially sustainable. There is a possibility that Void will become its revenue source.


Void aims to provide an experience where you can deploy without thinking if you use Vite. Following Vercel/Next.js, the trend of vertical integration by a single company from front-end build tools to deployment infrastructure began with VoidZero/Vite. However, as someone who operates a static site, I am more concerned about CDN bandwidth limitations and edge locations than the differences in deployment platforms.