DeployKit

Overview

The provider-independent part of deploykit, and what to import.

@deploykit/core holds everything that works the same on every host: artifacts, manifests, errors, and the contract every provider implements. It never imports a provider SDK.

You rarely use core on its own. You pair it with a provider:

Each provider package gives you a layer for the Deploykit service, which lives in core.

import { Effect } from "effect"
import { Deploykit } from "@deploykit/core"
import * as Vercel from "@deploykit/vercel" // or @deploykit/cloudflare

const program = Effect.gen(function* () {
  const deploykit = yield* Deploykit.Deploykit
  return yield* deploykit.deployDirectory(appId, "./build")
})

program.pipe(Effect.provide(Vercel.layerConfig()))

Both have the same methods. See the Promise client and Deploykit service references.

What every provider supports

Code that sticks to these runs on any host.

MethodDoes
createApp(name)Create a project for one site
getApp(appId)Look up a project
deleteApp(appId)Delete a project
deploy(appId, artifact, options?)Upload files and create a deployment
deployDirectory(appId, dir, options?)Same, straight from a directory
deployManifest(appId, manifest, read, options?)Same, from a manifest
getDeployment(appId, deploymentId)Read a deployment's status and URL

The rest are optional: findAppByName, setAccess, activateDeployment, getActivation and reconcileDeployment. On a provider without them they fail with UnsupportedError. Check capabilities first.

Imports

ImportWhat you get
@deploykit/coreDeploykit, Artifact, Entry, Manifest, Source, Provider, Platform
@deploykit/vercellayer, layerConfig, lower-level vercelLayer, layerWith, makeVercelClient
@deploykit/cloudflarelayer, layerConfig, lower-level cloudflareLayer, layerWith, makeCloudflareClient
@deploykit/core/manifest-builderfromDirectory, fromArtifact to build manifests
@deploykit/core/telemetryObserver, observe, Event

Which layer do I use? (Effect)

LayerProvidesUse it for
Vercel.layerConfig() / layer(opts)DeploykitAlmost everything
Vercel.vercelLayer / layerWith(client)Provider.DeploymentProviderThe Platform service, tests, writing an adapter

Deploykit wraps the raw provider, adds shared memory and disk budgets, and turns missing optional operations into UnsupportedError.

Last updated on

On this page