Skip to content
Dashboard

Vercel Ship 2025 recap

Keith MessickChief Marketing Officer

Be flexible. Move fast. Stay secure.

Guillermo Rauch giving the Vercel Ship 2025 keynote introduction at The Glasshouse in New York City.
Guillermo Rauch giving the Vercel Ship 2025 keynote introduction at The Glasshouse in New York City.

See all the Ship 2025 announcements

Watch the full keynote to hear all the new features we announced.

Watch the Keynote

Link to headingSimplifying model access with AI Gateway

Link to headingSmarter compute with Fluid and Active CPU pricing

Fluid compute bills by execution time, not wall time.Fluid compute bills by execution time, not wall time.
Fluid compute bills by execution time, not wall time.

Link to headingRun untrusted code with Vercel Sandbox

import { Sandbox } from "@vercel/sandbox";
import { generateText } from 'ai';
const result = await generateText({
model: "anthropic/claude-4-sonnet-20250514",
prompt: `Write a Node.js script that prints a Haiku poem to stdout.`,
system: `
You are a developer that responds with the content of a single Node.js script.
You must include only the code without any markdown, nothing else.
Just include Javascript code and no characters before or after the code.
`,
});
const sandbox = await Sandbox.create();
await sandbox.writeFiles([
{ path: "script.js", stream: Buffer.from(result.text) },
]);
await sandbox.runCommand({
cmd: "node",
args: ["script.js"],
stdout: process.stdout,
stderr: process.stderr,
});

An example of using Vercel Sandbox to run generated code.

Link to headingRolling Releases for safer deployments

Link to headingMicrofrontends for team autonomy

Link to headingInvisible bot detection with BotID

import { checkBotId } from "botid/server";
export async function POST(req: Request) {
const { isBot } = await checkBotId();
if (isBot) {
return new Response("Access Denied", { status: 403 });
}
const result = await expensiveOrCriticalOperation();
return new Response("Success!");
}

Setup is simple with no config files or tuning required. Install the package, setup rewrites, mount the client, and verify requests server-side.

Link to headingMeet Vercel Agent: AI that investigates so you don't have to

Insights appear contextually as detailed notebooks with no configuration required.Insights appear contextually as detailed notebooks with no configuration required.
Insights appear contextually as detailed notebooks with no configuration required.

Link to headingOffload work to the background with Vercel Queues

import { send, receive } from "@vercel/queue";
await send("topic", { message: "Hello World!" });
await receive("topic", "consumer", (m) => {
console.log(m.message); // Logs "Hello World!"
});

An example of sending and receiving message with a queue.

Link to headingThe foundation for AI Cloud development

Let us know how we can help

Whether you're starting a migration, need help optimizing, or want to add AI to your apps and workflows, we're here to partner with you.

Contact Us