Runtime
Bundler
Package Manager
Test Runner
Guides
Reference
Blog
Install Bun
Guides Deployment

Deploy a Bun application on Vercel

Vercel is a cloud platform for building, deploying, and scaling apps.

The Bun runtime is in Beta. Some features are not yet supported — for example, automatic source maps, byte-code caching, and metrics on node:http/https.

Bun.serve is not supported on Vercel Functions. Use Bun with frameworks supported by Vercel, like Next.js, Express, Hono, or Nitro.


Configure Bun in vercel.json

To enable the Bun runtime for your Functions, add a bunVersion field in your vercel.json file:

vercel.json
{
	"bunVersion": "1.x"
}

Vercel automatically detects this configuration and runs your application on Bun. The value must be "1.x"; Vercel handles the minor version internally.

For best results, match your local Bun version with the version used by Vercel.

Next.js configuration

If you’re deploying a Next.js project (including ISR), update your package.json scripts to use the Bun runtime:

package.json
{
	"scripts": {
		"dev": "bun --bun next dev", 
		"build": "bun --bun next build"
	}
}

The --bun flag runs the Next.js CLI under Bun. Bundling (with Turbopack or Webpack) is unchanged.

With these scripts, both local development and builds use Bun.

Deploy your app

Connect your repository to Vercel, or deploy from the CLI:

terminal
# Using bunx (no global install)
$ bunx vercel login
$ bunx vercel deploy

Or install the Vercel CLI globally:

terminal
$ bun i -g vercel
$ vercel login
$ vercel deploy

Learn more in the Vercel Deploy CLI documentation →

Verify the runtime

To confirm your deployment uses Bun, log the Bun version:

index.ts
console.log("runtime", process.versions.bun);
// => runtime 1.3.14

See the Vercel Bun Runtime documentation for feature support →


  • Fluid compute: Both Bun and Node.js runtimes run on Fluid compute and support the same core Vercel Functions features.
  • Middleware: To run Routing Middleware with Bun, set the runtime to nodejs:
middleware.ts
export const config = { runtime: "nodejs" };