Skip to content

Project ​

Create and manage Vercel projects.

Authentication ​

To use this resource, set VERCEL_ACCESS_TOKEN in your .env file or pass accessToken directly in your resource configuration.

Examples ​

With accessToken ​

ts
const project = await Project("my-app", {
  accessToken: alchemy.secret(process.env.VERCEL_ACCESS_TOKEN),
  name: "my-app",
  framework: "astro",
});

With GitHub ​

typescript
const project = await Project("my-app", {
  name: "my-app",
  framework: "nextjs",
  gitRepository: {
    type: "github",
    repo: "username/my-app",
  },
});

With Environment Variables ​

Plain Text ​

ts
const project = await Project("my-app", {
  name: "my-app",
  environmentVariables: [
    {
      key: "PUBLIC_URL",
      target: ["production", "preview", "development"],
      // `type: "plain"` default when `value` is a string
      value: "https://example.com",
    },
  ],
});

Encrypted ​

ts
const project = await Project("my-app", {
  name: "my-app",
  environmentVariables: [
    {
      key: "DATABASE_URL",
      target: ["production", "preview"],
      // `type: "encrypted"` is the default when `value` is a Secret
      value: alchemy.secret("DATABASE_URL"),
    },
  ],
});

Sensitive ​

https://vercel.com/docs/environment-variables/sensitive-environment-variables

ts
const project = await Project("my-app", {
  name: "my-app",
  environmentVariables: [
    {
      key: "DATABASE_URL",
      target: ["production", "preview"],
      type: "sensitive",
      value: alchemy.secret("DATABASE_URL"),
    },
  ],
});

With Custom Build Settings ​

ts
const project = await Project("my-app", {
  name: "my-app",
  buildCommand: "npm run build",
  outputDirectory: "dist",
  installCommand: "npm install",
  devCommand: "npm run dev",
});