NetlifyDeployer
The NetlifyDeployer class handles packaging, configuration, and deployment by adapting Mastra's output to create an optimized version of your server. It extends the base Deployer class with Netlify-specific functionality. It enables you to run Mastra within Netlify serverless functions or edge functions.
InstallationDirect link to Installation
In order to use NetlifyDeployer, you need to install the @mastra/deployer-netlify package:
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/deployer-netlify@latest
pnpm add @mastra/deployer-netlify@latest
yarn add @mastra/deployer-netlify@latest
bun add @mastra/deployer-netlify@latest
Usage exampleDirect link to Usage example
Import NetlifyDeployer and set it as the deployer in your Mastra configuration:
import { Mastra } from '@mastra/core'
import { NetlifyDeployer } from '@mastra/deployer-netlify'
export const mastra = new Mastra({
deployer: new NetlifyDeployer(),
})
Constructor optionsDirect link to Constructor options
target?: 'serverless' | 'edge'— Deploy target for Netlify. Defaults to'serverless'.'serverless'— Standard Netlify Functions (Node.js runtime, 60s default timeout).'edge'— Netlify Edge Functions (Deno-based runtime, runs at the edge closest to users, no hard timeout).
Edge functions exampleDirect link to Edge functions example
import { Mastra } from '@mastra/core'
import { NetlifyDeployer } from '@mastra/deployer-netlify'
export const mastra = new Mastra({
deployer: new NetlifyDeployer({
target: 'edge',
}),
})
OutputDirect link to Output
After running mastra build, the deployer generates a .netlify folder. The build output includes all agents, tools, and workflows of your project, alongside a config.json file that configures the Netlify Frameworks API.
Serverless output (default)Direct link to Serverless output (default)
your-project/
└── .netlify/
└── v1/
├── config.json
└── functions/
└── api/
├── index.mjs
├── package.json
└── node_modules/
The config.json file contains:
{
"functions": {
"directory": ".netlify/v1/functions",
"node_bundler": "none",
"included_files": [".netlify/v1/functions/**"]
},
"redirects": [
{
"force": true,
"from": "/*",
"to": "/.netlify/functions/api/:splat",
"status": 200
}
]
}
Edge outputDirect link to Edge output
your-project/
└── .netlify/
└── v1/
├── config.json
└── edge-functions/
├── index.mjs
├── package.json
└── node_modules/
The config.json file contains:
{
"edge_functions": [
{
"function": "index",
"path": "/*"
}
]
}