docs/src/content/en/reference/deployer/vercel.mdx
The VercelDeployer bundles your Mastra server and generates output conforming to Vercel's Build Output API. Vercel deploys this output directly as serverless functions.
To use VercelDeployer, install the @mastra/deployer-vercel package:
npm install @mastra/deployer-vercel@latest
Import VercelDeployer and set it as the deployer in your Mastra configuration:
import { Mastra } from '@mastra/core'
// highlight-next-line
import { VercelDeployer } from '@mastra/deployer-vercel'
export const mastra = new Mastra({
// highlight-next-line
deployer: new VercelDeployer(),
})
The deployer accepts the following options:
studio?: boolean — Deploy Studio alongside your API as static assets served from Vercel's Edge CDN. Defaults to false.maxDuration?: number — Function execution timeout (in seconds)memory?: number — Function memory (in MB)regions?: string[] — Regions to deploy the function (e.g. ['sfo1','iad1'])The maxDuration, memory, and regions options are merged into .vercel/output/functions/index.func/.vc-config.json while preserving default fields (handler, launcherType, runtime, shouldAddHelpers).
import { Mastra } from '@mastra/core'
import { VercelDeployer } from '@mastra/deployer-vercel'
export const mastra = new Mastra({
deployer: new VercelDeployer({
studio: true,
maxDuration: 600,
memory: 1536,
regions: ['sfo1', 'iad1'],
}),
})
After running mastra build, the deployer generates a .vercel/output directory conforming to Vercel's Build Output API (v3). This directory contains routing configuration and serverless function bundles that Vercel deploys directly, bypassing framework detection.
The output contains:
studio: true)Without studio:
.vercel/
└── output/
├── config.json
└── functions/
└── index.func/
├── .vc-config.json
├── index.mjs
└── node_modules/
With studio: true:
.vercel/
└── output/
├── config.json
├── static/
│ ├── index.html
│ └── assets/
│ ├── *.js
│ └── *.css
└── functions/
└── index.func/
├── .vc-config.json
├── index.mjs
└── node_modules/
When studio is enabled, the routing is configured so that /api/* requests are handled by the serverless function, static assets (JS, CSS) are served from Vercel's Edge CDN with no function invocations, and all other paths fall back to index.html for client-side routing.
This folder is generated during build and shouldn't be committed to version control.