The server layer for Vite apps. Databases, storage, queues, workflows, and more.
Use one API in your app and deploy it to your choice of cloud.
Website · First Server Primitive · Docs
Use each primitive alone, or use them together in one app.
KV State and cache |
Blob Files and uploads |
Database Relational data |
Queue Background jobs |
Workflow Durable orchestration |
Schedule Recurring work |
Auth Users and sessions |
Connections Connected account APIs |
Workspace Persistent file trees |
Sandbox Isolated execution |
Browser Browser operations |
Shell Command execution |
Source Read-only content |
Content Parse and search |
Transactional email |
Channels Named message delivery |
Env Typed configuration |
Rate Limit Request budgets |
Realtime Collaborative documents |
Agent Portable automation |
UI Agent interfaces |
// server/api/settings.get.ts
import { defineEventHandler } from "h3";
import { kv } from "vite-hub/kv";
export default defineEventHandler(async () => {
const [error, settings] = await kv.get("settings");
if (error) throw error;
return settings;
});This route does not change between hosts. The host selects the provider:
| Host | KV | Blob | Database |
|---|---|---|---|
| Cloudflare | Workers KV | R2 | D1 |
| Vercel | Upstash Redis | Vercel Blob | libSQL or D1 HTTP |
| Netlify | Upstash Redis | Netlify Blobs | libSQL |
| Deno | Deno KV | S3-compatible | libSQL |
| Node | fs-lite or Upstash |
fs or S3-compatible |
SQLite or libSQL |
Support is different for each primitive. Read the support matrix before you select a host.
pnpm add vite-hub nitro h3
pnpm add -D vite// vite.config.ts
import { vitehub } from "vite-hub";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [vitehub({ preset: "node", kv: true })],
});Nitro serves the routes in server/ and builds the output for your host. For a complete app, follow the First Server Primitive tutorial. It runs offline and needs no account.
If a coding agent writes your app, install the ViteHub skill:
npx skills add https://vitehub.dev --skill vitehubRequirements: Node 24.15 or newer and Vite 8 or newer. Presets: cloudflare, netlify, vercel, deno, and node.
Agents are one more primitive. Their Capabilities wrap the same primitives that your routes call, so a route can read the KV store that an Agent writes. Start with the First Agent tutorial.
ViteHub is in active development and has not reached 1.0. Interfaces can change between 0.x releases, and security fixes land on main only. Pin your versions, and read Prepare a production deployment before you serve traffic.
See AGENTS.md for the code map and checks. ViteHub uses the Apache License 2.0. Report vulnerabilities through the security policy.