fate ↗︎ is a modern data client for the web inspired by Relay ↗︎ and GraphQL ↗︎. It combines view composition, normalized caching, data masking, Async React features, and type-safe data fetching.
Deploy fate directly to your own Cloudflare account with Void ↗︎. The Void template includes the app, D1 database, Drizzle migrations, Better Auth, and live updates through void-fate and void/live.
You need Node.js 24+ and Vite+ ↗︎.
-
Create a new fate app with Vite+.
vp create fate -- my-app --template void cd my-appAdd
--framework vueto the create command to use Vue instead of React. -
Set up Void local files, seed the local database, and prepare fate client support.
vp run dev:setup -
Start the app.
vp run devThe app runs at
http://localhost:6001. -
Deploy directly to your own Cloudflare account.
From the project root:
vp exec void deploy --platform cloudflareVoid signs you into Cloudflare when needed, lets you select your account, provisions resources, applies checked-in database migrations, and deploys the app. It saves resource IDs in the root
wrangler.jsonc; commit that updated config for subsequent deployments. A Void platform account is not required.
The template includes the VOID_LIVE Durable Object binding and its class migration. Keep them in wrangler.jsonc so live subscriptions can receive updates across requests. RPC requests use /fate, and live updates use /fate-live.
After changing your database schema or auth configuration, run vp run db:generate, review and commit the generated migrations, then deploy. The migrations must include the Better Auth schema used in production.
See Void's Cloudflare deployment guide ↗︎ for custom domains, secrets, and CI configuration.