ViteHub is still experimental. Expect bugs and breaking changes.

Frameworks and hosts

See what ViteHub configures for each framework and deployment host.

ViteHub discovers definitions during the Vite build, then prepares the files and bindings required by the selected host. Application code keeps using ViteHub imports instead of generated paths or provider SDKs.

Host support remains package-specific. A host can support one primitive without supporting every ViteHub package, and a Runtime Helper can work without a ViteHub-generated deployment bundle.

Choose a host

NeedOpen
Compare current host coverage and proof maturityRuntime and host support
Generate Cloudflare Worker output and bindingsCloudflare
Generate Vercel Build OutputVercel
Use package-specific Netlify functions and Blob runtimeNetlify
Run Agent routes, schedules, or KV on DenoDeno
Understand package-owned Nitro bridgesNitro and UnJS
Mount supported helpers in a Node-shaped serverNode and self-hosted

What the Vite integration does

StepResult
Discover definitionsFinds named Agents, Workspaces, queues, workflows, and other configured resources.
Generate registriesLets server code load discovered definitions by name.
Resolve optionsApplies the host and provider choices from vite.config.ts.
Write host outputGenerates only the bindings, routes, functions, or config supported by that package.

Compose integrations

Use vite-hub in applications. Queue remains opt-in, and each feature keeps its own public import.

vite.config.ts
import { defineConfig } from 'vite'
import { vitehub } from 'vite-hub'

export default defineConfig({
  plugins: [vitehub({ preset: "node" })],
})

Register an individual hubX() integration from its @vite-hub/*/vite package when a library or focused integration needs direct control.

Keep runtime imports stable

Import server APIs through documented ViteHub paths. Do not import framework virtual modules or generated files unless a reference page marks the path public.

server/settings.ts
import { kv } from 'vite-hub/kv'

export async function saveSettings(settings: Record<string, unknown>) {
  const [error] = await kv.set('settings', settings)
  if (error) throw error
}

Inspect the output

Vite development proves discovery and local generation. A production build creates the output for the selected host. Netlify development can also create functions for the Netlify CLI.

Terminal
pnpm dev
find .vitehub -maxdepth 4 -type f | sort
pnpm build

Next steps