Installation
Install deploykit and choose the right runtime boundary.
Requirements
Use Node 22.19 or newer or Bun. Keep provider credentials in your backend.
The Promise API uses Effect internally; your application does not need Effect imports.
Effect applications must use effect@4.0.0-rc.112 and matching platform packages.
Promise applications
Install the alpha release with your package manager:
npm install @deploykit/node@alphaOr with Bun:
bun add @deploykit/node@alphaThis package includes both provider adapters and the pinned Effect runtime. Your application
uses normal async/await and does not need to import Effect. Choose the provider through
@deploykit/node/vercel or @deploykit/node/cloudflare.
Effect applications
For Vercel:
npm install @deploykit/core@alpha @deploykit/vercel@alpha effect@4.0.0-rc.112 @effect/platform-node@4.0.0-rc.112For Cloudflare Pages:
npm install @deploykit/core@alpha @deploykit/cloudflare@alpha effect@4.0.0-rc.112 @effect/platform-node@4.0.0-rc.112Keep the Effect versions aligned across your application. When installing the Node platform
directly, pin its shared runtime in your existing package configuration, then run npm install:
{
"overrides": {
"@effect/platform-node-shared": "4.0.0-rc.112"
}
}Optional packages
npm install --save-dev @deploykit/test@alpha @effect/vitest@4.0.0-rc.112
npm install --save-dev @deploykit/devtools@alpha effect@4.0.0-rc.112 @effect/platform-node@4.0.0-rc.112The test package supplies an in-memory provider. Devtools supplies a local dashboard and event collector. See testing and devtools.
The alpha tag selects the current prerelease. Commit your lockfile and review release notes
before updating; the public API can change during alpha.
Configure TypeScript
The examples use strict TypeScript with ESM. A Node application can start with:
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"strict": true,
"noEmit": true,
"allowImportingTsExtensions": true
}
}Install the typechecking tools with npm install --save-dev typescript @types/node,
and set "type": "module" in your application’s package.json.
Example imports use .ts for Node's built-in TypeScript support; bundled applications
can follow their bundler's conventions.
Add credentials
For Vercel:
VERCEL_TOKEN=your-token
VERCEL_TEAM_ID=your-team-id
VERCEL_PROJECT_ID=your-isolated-project-idFor Cloudflare Pages:
CLOUDFLARE_API_TOKEN=your-token
CLOUDFLARE_ACCOUNT_ID=your-account-id
CLOUDFLARE_PROJECT_ID=your-pages-project-nameCreate a Vercel token for the destination team, or a Cloudflare API token with Pages edit access in the selected account. The project variables above are conventions used by these guides, not variables read automatically by the SDK.
Bun loads .env; for Node examples use node --env-file=.env your-script.ts.
Keep .env out of deployed artifacts. deployDirectory includes dotfiles.
Run your first deployment
- Vercel quickstart: prepared directory, persisted receipt, bounded wait and verification.
- Pages quickstart: a preview publish with explicit branch configuration.
- Effect integration: layers, requirements and typed failures.
For a standalone script, close the client in finally. In a server or worker,
reuse one client or runtime across calls to share resource budgets.
Last updated on